Class: Slidict::External::SlidictIo::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/slidict/external/slidict_io/client.rb

Overview

Talks to the slidict.io CLI slides API using a CLI access token (obtained via Slidict::External::SlidictIo::Auth / slidict auth).

Defined Under Namespace

Classes: Error, Forbidden, NotEditable, NotFound, RateLimited, Unauthorized, Unprocessable

Constant Summary collapse

DEFAULT_BASE_URL =
"https://slidict.io"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_token:, token_type: "Bearer", base_url: ENV.fetch("SLIDICT_AUTH_BASE_URL", DEFAULT_BASE_URL)) ⇒ Client

Returns a new instance of Client.



34
35
36
37
38
39
# File 'lib/slidict/external/slidict_io/client.rb', line 34

def initialize(access_token:, token_type: "Bearer",
               base_url: ENV.fetch("SLIDICT_AUTH_BASE_URL", DEFAULT_BASE_URL))
  @access_token = access_token
  @token_type = token_type
  @base_url = base_url
end

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



32
33
34
# File 'lib/slidict/external/slidict_io/client.rb', line 32

def base_url
  @base_url
end

Instance Method Details

#create(body:, title: nil, body_format: nil, visibility: nil) ⇒ Object



49
50
51
52
# File 'lib/slidict/external/slidict_io/client.rb', line 49

def create(body:, title: nil, body_format: nil, visibility: nil)
  post_json("/api/cli/slides",
            slide_payload(title: title, body: body, body_format: body_format, visibility: visibility))
end

#list(page: nil) ⇒ Object



41
42
43
# File 'lib/slidict/external/slidict_io/client.rb', line 41

def list(page: nil)
  get_json("/api/cli/slides", query: page ? { page: page } : {})
end

#show(id) ⇒ Object



45
46
47
# File 'lib/slidict/external/slidict_io/client.rb', line 45

def show(id)
  get_json("/api/cli/slides/#{id}")
end

#update(id, body: nil, title: nil, body_format: nil, visibility: nil) ⇒ Object



54
55
56
57
# File 'lib/slidict/external/slidict_io/client.rb', line 54

def update(id, body: nil, title: nil, body_format: nil, visibility: nil)
  patch_json("/api/cli/slides/#{id}",
             slide_payload(title: title, body: body, body_format: body_format, visibility: visibility))
end