class Kintone::Api

Constants

ACCESSIBLE_COMMAND
BASE_PATH
COMMAND

Public Class Methods

new(domain, user, password = nil) click to toggle source
# File lib/kintone/api.rb, line 20
def initialize(domain, user, password = nil)
  @connection =
    Faraday.new(url: "https://#{domain}", headers: build_headers(user, password)) do |builder|
      builder.request :url_encoded
      builder.request :multipart
      builder.response :json, content_type: /\bjson$/
      builder.adapter :net_http
    end
end

Public Instance Methods

delete(url, body = nil) click to toggle source
# File lib/kintone/api.rb, line 70
def delete(url, body = nil)
  response =
    @connection.delete do |request|
      request.url url
      request.headers['Content-Type'] = 'application/json'
      request.body = body.to_json
    end
  raise Kintone::KintoneError.new(response.body, response.status) if response.status != 200
  response.body
end
get(url, params = {}) click to toggle source
# File lib/kintone/api.rb, line 38
def get(url, params = {})
  response =
    @connection.get do |request|
      request.url url
      request.params = params
    end
  raise Kintone::KintoneError.new(response.body, response.status) if response.status != 200
  response.body
end
get_url(command) click to toggle source
# File lib/kintone/api.rb, line 30
def get_url(command)
  BASE_PATH + (COMMAND % command)
end
guest(space_id) click to toggle source
# File lib/kintone/api.rb, line 34
def guest(space_id)
  Kintone::Api::Guest.new(space_id, self)
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/kintone/api.rb, line 92
def method_missing(name, *args)
  if ACCESSIBLE_COMMAND.include?(name)
    CommandAccessor.send(name, self)
  else
    super
  end
end
post(url, body) click to toggle source
# File lib/kintone/api.rb, line 48
def post(url, body)
  response =
    @connection.post do |request|
      request.url url
      request.headers['Content-Type'] = 'application/json'
      request.body = body.to_json
    end
  raise Kintone::KintoneError.new(response.body, response.status) if response.status != 200
  response.body
end
post_file(url, path, content_type, original_filename) click to toggle source
# File lib/kintone/api.rb, line 81
def post_file(url, path, content_type, original_filename)
  response =
    @connection.post do |request|
      request.url url
      request.headers['Content-Type'] = 'multipart/form-data'
      request.body = { file: Faraday::UploadIO.new(path, content_type, original_filename) }
    end
  raise Kintone::KintoneError.new(response.body, response.status) if response.status != 200
  response.body['fileKey']
end
put(url, body) click to toggle source
# File lib/kintone/api.rb, line 59
def put(url, body)
  response =
    @connection.put do |request|
      request.url url
      request.headers['Content-Type'] = 'application/json'
      request.body = body.to_json
    end
  raise Kintone::KintoneError.new(response.body, response.status) if response.status != 200
  response.body
end
respond_to_missing?(name, *args) click to toggle source
Calls superclass method
# File lib/kintone/api.rb, line 100
def respond_to_missing?(name, *args)
  ACCESSIBLE_COMMAND.include?(name) || super
end

Private Instance Methods

build_headers(user, password) click to toggle source
# File lib/kintone/api.rb, line 110
def build_headers(user, password)
  if password # パスワード認証
    { 'X-Cybozu-Authorization' => Base64.encode64("#{user}:#{password}") }
  else # APIトークン認証
    { 'X-Cybozu-API-Token' => user }
  end
end