class Necessitas::Connection::Besse

Constants

ALPHA_URL
BETA_URL
DATE_FORMAT
LIST_PATH
ORDER_PATH
PROD_URL

Public Class Methods

build_account_info(customer_number: , generics: , items: ) click to toggle source
# File lib/necessitas/connection/besse.rb, line 51
def self.build_account_info(customer_number: , generics: , items: )
  Necessitas::Models::Besse::AccountInfo.new(
    customer_number: customer_number,
    generics: generics,
    items: items.map(&:to_h)
  ).as_json
end
configuration() click to toggle source
# File lib/necessitas/connection/besse.rb, line 67
def self.configuration
  @configuration ||= Necessitas::Configuration::Besse.new
end
configure() { |configuration| ... } click to toggle source
# File lib/necessitas/connection/besse.rb, line 71
def self.configure
  yield(configuration)
end
format_date(d) click to toggle source
# File lib/necessitas/connection/besse.rb, line 59
def self.format_date(d)
  if d.respond_to?(:strftime)
    d.strftime(DATE_FORMAT)
  else
    d
  end
end
new(customer_number: , generics: false) click to toggle source
# File lib/necessitas/connection/besse.rb, line 19
def initialize(customer_number: , generics: false)
  @customer_number = customer_number
  @generics = (true == generics)
end

Public Instance Methods

check_inventory(items: ) click to toggle source
# File lib/necessitas/connection/besse.rb, line 24
def check_inventory(items: )
  data = self.class.build_account_info(customer_number: @customer_number, generics: @generics, items: items)

  response = request(endpoint: LIST_PATH, body: data)

  Necessitas::Models::Besse::AtpResponse.new(response: response)
end
place_order(order: ) click to toggle source
# File lib/necessitas/connection/besse.rb, line 32
def place_order(order: )
  request(
    endpoint: ORDER_PATH,
    body: order,
  )
end
request(endpoint: , body: nil, headers: {}) click to toggle source
# File lib/necessitas/connection/besse.rb, line 39
def request(endpoint: , body: nil, headers: {})
  body = body.to_json if body.is_a?(Hash)
  headers = Necessitas::Connection::Besse.configuration.api_auth_header.merge(headers)

  self.class.post(
    endpoint,
    body: body,
    basic_auth: Necessitas::Connection::Besse.configuration.basic_auth,
    headers: headers
  )
end