Class: Notion::OAuth::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/notion/oauth.rb

Instance Method Summary collapse

Constructor Details

#initialize(client_id:, client_secret:, redirect_uri:, base_url: "https://api.notion.com") ⇒ Client

Returns a new instance of Client.



12
13
14
15
16
17
# File 'lib/notion/oauth.rb', line 12

def initialize(client_id:, client_secret:, redirect_uri:, base_url: "https://api.notion.com")
  @client_id = client_id
  @client_secret = client_secret
  @redirect_uri = redirect_uri
  @base_url = base_url
end

Instance Method Details

#authorize_url(state:, owner: "user") ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/notion/oauth.rb', line 19

def authorize_url(state:, owner: "user")
  query = URI.encode_www_form(
    client_id: @client_id,
    response_type: "code",
    owner: owner,
    redirect_uri: @redirect_uri,
    state: state
  )
  "https://api.notion.com/v1/oauth/authorize?#{query}"
end

#exchange(code:) ⇒ Object



30
31
32
# File 'lib/notion/oauth.rb', line 30

def exchange(code:)
  token_request(grant_type: "authorization_code", code: code, redirect_uri: @redirect_uri)
end

#introspect(token:) ⇒ Object



38
39
40
# File 'lib/notion/oauth.rb', line 38

def introspect(token:)
  request("/v1/oauth/introspect", token: token)
end

#refresh(refresh_token:) ⇒ Object



34
35
36
# File 'lib/notion/oauth.rb', line 34

def refresh(refresh_token:)
  token_request(grant_type: "refresh_token", refresh_token: refresh_token)
end

#revoke(token:) ⇒ Object



42
43
44
# File 'lib/notion/oauth.rb', line 42

def revoke(token:)
  request("/v1/oauth/revoke", token: token)
end