Module: Yonder
- Defined in:
- lib/yonder.rb,
lib/yonder/errors.rb,
lib/yonder/session.rb,
lib/yonder/version.rb
Defined Under Namespace
Classes: AuthenticationError, Error, InvalidParamsError, NetworkError, RateLimitedError, RequestError, ResponseError, Session, TokenExpiredError, TokenInvalidError
Constant Summary
collapse
- BASE_URL =
"https://bsky.social"
- COLLECTION_POST =
'app.bsky.feed.post'
- ERROR_MAPPING =
{
'AuthMissing' => AuthenticationError,
'ExpiredToken' => TokenExpiredError,
'InvalidToken' => TokenInvalidError
}
- VERSION =
0.3
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.api_host ⇒ Object
Returns the value of attribute api_host.
20
21
22
|
# File 'lib/yonder.rb', line 20
def api_host
@api_host
end
|
.session ⇒ Object
Returns the value of attribute session.
21
22
23
|
# File 'lib/yonder.rb', line 21
def session
@session
end
|
.user_agent ⇒ Object
Returns the value of attribute user_agent.
22
23
24
|
# File 'lib/yonder.rb', line 22
def user_agent
@user_agent
end
|
Class Method Details
.create_post(user_did:, message:) ⇒ Object
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/yonder.rb', line 24
def create_post(user_did:, message:)
create_record(
user_did: user_did,
record: {
text: message,
createdAt: Time.now.iso8601
},
collection: COLLECTION_POST
)
end
|
.create_record(user_did:, record:, collection:) ⇒ Object
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/yonder.rb', line 35
def create_record(user_did:, record:, collection:)
post(
endpoint: "/com.atproto.repo.createRecord",
params: {
repo: user_did,
collection: collection,
record: record
}
)
end
|
.create_session(username:, password:) ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/yonder.rb', line 46
def create_session(username:, password:)
response = post(
endpoint: "/com.atproto.server.createSession",
params: {
identifier: username,
password: password
}
)
@session = Session.from_json(response)
true
end
|
.get(endpoint:) ⇒ Object
69
70
71
|
# File 'lib/yonder.rb', line 69
def get(endpoint:)
make_api_request(endpoint: endpoint, method: :get)
end
|
.post(endpoint:, params: {}, access_token: nil) ⇒ Object
73
74
75
|
# File 'lib/yonder.rb', line 73
def post(endpoint:, params: {}, access_token: nil)
make_api_request(endpoint: endpoint, method: :post, params: params, access_token: access_token)
end
|
.refresh_session ⇒ Object
59
60
61
62
63
64
65
66
67
|
# File 'lib/yonder.rb', line 59
def refresh_session
response = post(
endpoint: "/com.atproto.server.refreshSession",
access_token: @session&.refresh_token
)
@session = Session.from_json(response)
true
end
|