Class: LightspeedRestaurantClient::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/lightspeed_restaurant/request.rb

Instance Method Summary collapse

Constructor Details

#initialize(base_uri, path, token, body = {}, query = {}, logger = nil) ⇒ Request

Returns a new instance of Request.



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/lightspeed_restaurant/request.rb', line 12

def initialize(base_uri, path, token, body = {}, query = {}, logger = nil)
  @base_uri   = base_uri || 'http://staging-integration.posios.com'
  @headers    = { 'Content-Type' => 'application/json', 'X-Auth-Token' => token }
  @body       = body.to_json
  @query      = query
  @path       = '/PosServer' + path
  @connection = Excon.new(@base_uri)
  @logger = logger || begin
    require 'logger'
    ::Logger.new($stdout)
  end
end

Instance Method Details

#perform(**args) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/lightspeed_restaurant/request.rb', line 25

def perform(**args)
  log_request(args[:method])
  response = @connection.request(args.merge(path: @path, headers: @headers, body: @body, query: @query))
  if [200, 201].include?(response.status)
    response.body
  else
    handle_error(response)
  end
end