Class: Atabodi::Client

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/atabodi/client.rb

Direct Known Subclasses

Bot, User

Instance Method Summary collapse

Constructor Details

#initialize(schema: DEFAULT_SCHEMA) ⇒ Client

Returns a new instance of Client.



14
15
16
17
# File 'lib/atabodi/client.rb', line 14

def initialize(schema: DEFAULT_SCHEMA)
  @schema = schema
  client.connection.headers = client.connection.headers.merge(headers)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/atabodi/client.rb', line 19

def method_missing(name, *args)
  if client.respond_to?(name)
    client.send(name, *args)
  else
    raise NoMethodError, name
  end
end

Instance Method Details

#update_bot_icon(id:, file_path:) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/atabodi/client.rb', line 27

def update_bot_icon(id:, file_path:)
  c = Faraday.new(url: client.base_url) do |connection|
    connection.request :multipart
    connection.request :url_encoded
    connection.response :json
    connection.adapter :net_http
  end

  # FIXME MIME TYPE
  params = {'bot[icon]' => Faraday::UploadIO.new(file_path, 'image/jpeg')}
  res = c.put("/api/bots/#{id}", params, headers)

  Jsonism::Response.new(
    client:         client,
    resource_class: Jsonism::Resources.const_get('Bot'),
    response:       res
  )
end