Class: RubySky::Client
- Inherits:
-
Object
- Object
- RubySky::Client
- Defined in:
- lib/rubysky/client.rb
Overview
API Client
Constant Summary collapse
- PDSHOST_BSKY_SOCIAL =
"https://bsky.social"
Class Method Summary collapse
- .from_app_password(identifier:, password:, pds: PDSHOST_BSKY_SOCIAL) ⇒ Object
- .from_refresh_jwt(refresh_jwt:, pds: PDSHOST_BSKY_SOCIAL) ⇒ Object
Instance Method Summary collapse
- #handle ⇒ Object
-
#initialize(client:) ⇒ Client
constructor
A new instance of Client.
- #post(text:, images: []) ⇒ Object
- #refresh_jwt ⇒ Object
- #user_did ⇒ Object
- #user_info ⇒ Object
Constructor Details
#initialize(client:) ⇒ Client
Returns a new instance of Client.
23 24 25 |
# File 'lib/rubysky/client.rb', line 23 def initialize(client:) @client = client end |
Class Method Details
.from_app_password(identifier:, password:, pds: PDSHOST_BSKY_SOCIAL) ⇒ Object
18 19 20 21 |
# File 'lib/rubysky/client.rb', line 18 def self.from_app_password(identifier:, password:, pds: PDSHOST_BSKY_SOCIAL) client = Raw::Client.create_session(identifier:, password:, pds:) new(client:) end |
.from_refresh_jwt(refresh_jwt:, pds: PDSHOST_BSKY_SOCIAL) ⇒ Object
13 14 15 16 |
# File 'lib/rubysky/client.rb', line 13 def self.from_refresh_jwt(refresh_jwt:, pds: PDSHOST_BSKY_SOCIAL) client = Raw::Client.from_refresh_jwt(refresh_jwt:, pds:) new(client:) end |
Instance Method Details
#handle ⇒ Object
59 60 61 |
# File 'lib/rubysky/client.rb', line 59 def handle @client.session.handle end |
#post(text:, images: []) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/rubysky/client.rb', line 27 def post(text:, images: []) unless images.empty? = Raw::ImageEmbed.new(images: images.map do |image| @client.upload_image(file: image[:data], mime_type: image[:mime_type], alt: image[:alt] || "") end) end Post.new(raw: @client.post(text: text, embed:), repo: @client.session.handle) end |
#refresh_jwt ⇒ Object
36 37 38 |
# File 'lib/rubysky/client.rb', line 36 def refresh_jwt @client.session.refresh_jwt end |
#user_did ⇒ Object
40 41 42 |
# File 'lib/rubysky/client.rb', line 40 def user_did @client.session.did_doc.did_doc end |
#user_info ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/rubysky/client.rb', line 44 def user_info { "pds" => @client.pds, "access_jwt" => @client.session.access_jwt, "refresh_jwt" => @client.session.refresh_jwt, "did" => @client.session.did_doc.did, "did_doc" => @client.session.did_doc.did_doc, "email" => @client.session.email, "email_confirmed" => @client.session.email_confirmed, "email_auth_factor" => @client.session.email_auth_factor, "active" => @client.session.active, "status" => @client.session.status }.compact end |