Class: Bskyrb::Session

Inherits:
Object
  • Object
show all
Includes:
RequestUtils
Defined in:
lib/bskyrb/session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from RequestUtils

#at_post_link, #create_record_uri, #default_authenticated_headers, #default_headers, #delete_record_uri, #get_author_feed_uri, #get_popular_uri, #get_post_thread_uri, #get_timeline_uri, #query_obj_to_query_params, #resolve_handle, #upload_blob_uri

Constructor Details

#initialize(credentials, pds, should_open = true) ⇒ Session

Returns a new instance of Session.



105
106
107
108
109
# File 'lib/bskyrb/session.rb', line 105

def initialize(credentials, pds, should_open = true)
  @credentials = credentials
  @pds = pds
  open! if should_open
end

Instance Attribute Details

#access_tokenObject (readonly)

Returns the value of attribute access_token.



103
104
105
# File 'lib/bskyrb/session.rb', line 103

def access_token
  @access_token
end

#credentialsObject (readonly)

Returns the value of attribute credentials.



103
104
105
# File 'lib/bskyrb/session.rb', line 103

def credentials
  @credentials
end

#didObject (readonly)

Returns the value of attribute did.



103
104
105
# File 'lib/bskyrb/session.rb', line 103

def did
  @did
end

#pdsObject (readonly)

Returns the value of attribute pds.



103
104
105
# File 'lib/bskyrb/session.rb', line 103

def pds
  @pds
end

#refresh_tokenObject (readonly)

Returns the value of attribute refresh_token.



103
104
105
# File 'lib/bskyrb/session.rb', line 103

def refresh_token
  @refresh_token
end

Instance Method Details

#open!Object

Raises:



111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/bskyrb/session.rb', line 111

def open!
  uri = URI("#{pds}/xrpc/com.atproto.server.createSession")
  response = HTTParty.post(
    uri,
    body: { identifier: credentials.username, password: credentials.pw }.to_json,
    headers: default_headers,
  )

  raise UnauthorizedError if response.code == 401

  @access_token = response["accessJwt"]
  @refresh_token = response["refreshJwt"]
  @did = response["did"]
end