Sha256: c88eb7332b3654853b4a90c67abe211504bee88c6762ee878a6c2f6ba008d18c

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

#   Lightspeed Restaurant Ruby Bindings
#   API spec at http://stating-integration.posios.com/PosServer/swagger-ui.html

require 'excon'
require 'json'

require 'lightspeed_restaurant/version'
require 'lightspeed_restaurant/request'
require 'lightspeed_restaurant/configuration'

require 'lightspeed_restaurant/customer'
require 'lightspeed_restaurant/customer_credit_change'
require 'lightspeed_restaurant/customer_loyalty_card'
require 'lightspeed_restaurant/receipt'
require 'lightspeed_restaurant/company'

module LightspeedRestaurantClient
  class << self
    attr_accessor :api_token, :base_uri, :logger

    def default_configuration
      Configuration.new(@api_token, @base_uri)
    end

    def get(path, query = {}, configuration = nil)
      request(path, {}, query, configuration).perform(method: :get)
    end

    def post(path, body = {}, query = {}, configuration = nil)
      request(path, body, query, configuration).perform(method: :post)
    end

    def put(path, body = {}, query = {}, configuration = nil)
      request(path, body, query, configuration).perform(method: :put)
    end

    def delete(path, query = {}, configuration = nil)
      request(path, {}, query, configuration).perform(method: :delete)
    end

    private

    def request(path, body, query, configuration = nil)
      configuration ||= default_configuration
      Request.new(configuration.base_uri, path, configuration.api_token, body, query, @logger)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lightspeed_restaurant-3.0.0 lib/lightspeed_restaurant.rb