class Teamtailor::Request
Attributes
api_token[R]
api_version[R]
base_url[R]
body[R]
method[R]
params[R]
path[R]
Public Class Methods
new(base_url:, api_token:, api_version:, path:, params: {}, body: {}, method: :get)
click to toggle source
# File lib/teamtailor/request.rb, line 8 def initialize(base_url:, api_token:, api_version:, path:, params: {}, body: {}, method: :get) @base_url = base_url @api_token = api_token @api_version = api_version @path = path @params = params @method = method @body = body end
Public Instance Methods
call()
click to toggle source
# File lib/teamtailor/request.rb, line 18 def call request = Typhoeus::Request.new( "#{base_url}#{path}", method: method, params: params, headers: request_headers, body: body.to_json ) response = request.run if response.code == 200 Teamtailor::PageResult.new response.body elsif response.code == 201 Teamtailor::Parser.parse(JSON.parse(response.body)).first else raise Teamtailor::Error.from_response( body: response.body, status: response.code ) end end
Private Instance Methods
request_headers()
click to toggle source
# File lib/teamtailor/request.rb, line 44 def request_headers { "Authorization": "Token token=#{api_token}", "X-Api-Version" => api_version, "User-Agent" => "teamtailor-rb v#{Teamtailor::VERSION}", "Content-Type" => "application/vnd.api+json; charset=utf-8", } end