class Atabodi::Client

Public Class Methods

new(schema: DEFAULT_SCHEMA) click to toggle source
# File lib/atabodi/client.rb, line 14
def initialize(schema: DEFAULT_SCHEMA)
  @schema = schema
  client.connection.headers = client.connection.headers.merge(headers)
end

Public Instance Methods

method_missing(name, *args) click to toggle source
# 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
update_bot_icon(id:, file_path:) click to toggle source
# 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

Private Instance Methods

client() click to toggle source
# File lib/atabodi/client.rb, line 48
def client
  @client ||= Jsonism::Client.new(schema: @schema)
end
headers() click to toggle source
# File lib/atabodi/client.rb, line 52
def headers
  {
    'User-Agent'  => "Atabodi v#{Atabodi::VERSION}",
  }
end