Class: TwitterTweetBot::API::Authorization

Inherits:
Object
  • Object
show all
Includes:
HTTP
Defined in:
lib/twitter_tweet_bot/api/authorization.rb,
lib/twitter_tweet_bot/api/authorization/secure_code.rb

Defined Under Namespace

Classes: SecureCode

Constant Summary

Constants included from HTTP::Headers

HTTP::Headers::BASIC_AUTHORIZATION, HTTP::Headers::BEARER_AUTHORIZATION

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HTTP

#request

Methods included from HTTP::Post

#request_post_form, #request_post_json

Methods included from HTTP::Base

#perform_request

Methods included from HTTP::Get

#request_get

Methods included from HTTP::Headers

#basic_authorization_header, #bearer_authorization_header

Methods included from HTTP::Error

#request_error!

Constructor Details

#initialize(client_id, redirect_uri, scopes) ⇒ Authorization

Returns a new instance of Authorization.



27
28
29
30
31
# File 'lib/twitter_tweet_bot/api/authorization.rb', line 27

def initialize(client_id, redirect_uri, scopes)
  @client_id = client_id
  @redirect_uri = redirect_uri
  @scopes = scopes
end

Class Method Details

.authorize(client_id:, redirect_uri:, scopes:, code_verifier:, code_challenge_method:, state:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/twitter_tweet_bot/api/authorization.rb', line 14

def self.authorize(
  client_id:,
  redirect_uri:,
  scopes:,
  code_verifier:,
  code_challenge_method:,
  state:,
  **
)
  new(client_id, redirect_uri, scopes)
    .authorize(code_verifier, code_challenge_method, state)
end

Instance Method Details

#authorize(code_verifier, code_challenge_method, state) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/twitter_tweet_bot/api/authorization.rb', line 33

def authorize(code_verifier, code_challenge_method, state)
  secure_code = Authorization::SecureCode.new(
    code_verifier: code_verifier,
    code_challenge_method: code_challenge_method,
    state: state
  )
  uri = build_uri(AUTH_URL, build_body(secure_code))
  as_hash(uri.to_s, secure_code)
end