class Desertcart::Client

Constants

REQUEST_HEADERS
ROOT_URI

Attributes

store_id[R]
store_token[R]
user_id[R]
user_token[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/desertcart/client.rb, line 17
def initialize(args = {})
  @user_id = args[:user_id]
  @user_token = args[:user_token]
  @store_id = args[:store_id]
  @store_token = args[:store_token]
end

Public Instance Methods

auth_headers() click to toggle source
# File lib/desertcart/client.rb, line 36
def auth_headers
  {
    'X-User-Id' => @user_id,
    'X-User-Token' => @user_token,
    'X-Store-Id' => @store_id,
    'X-Store-Token' => @store_token
  }
end
create(**keywords) click to toggle source
# File lib/desertcart/client.rb, line 28
def create(**keywords)
  request(keywords.merge(method: :post))
end
read(**keywords) click to toggle source
# File lib/desertcart/client.rb, line 24
def read(**keywords)
  request(keywords.merge(method: :get))
end
request(args = {}) click to toggle source
# File lib/desertcart/client.rb, line 45
def request(args = {})
  request = LedgerSync::Ledgers::Request.new(
    body: args.fetch(:body, nil),
    headers: args.fetch(:headers, {})
      .merge(REQUEST_HEADERS)
      .merge(auth_headers),
    method: args.fetch(:method),
    url: url_from_path(path: args.fetch(:path)),
    params: args.fetch(:params, {})
  )

  request.perform
end
update(**keywords) click to toggle source
# File lib/desertcart/client.rb, line 32
def update(**keywords)
  request(keywords.merge(method: :put))
end
url_from_path(path:) click to toggle source
# File lib/desertcart/client.rb, line 59
def url_from_path(path:)
  request_url = ROOT_URI
  request_url += '/' unless path.to_s.start_with?('/')
  request_url + path.to_s
end