class ModulePos::Fiscalization::Client

Http client for Module POS api

Constants

ASSOCIATE_PATH
CREATE_DOC_PATH
DOC_PATH
STATUS_PATH

Attributes

http[R]
pass[R]
username[R]

Public Class Methods

new( host:, username: nil, pass: nil, conn: Faraday.new( url: host, headers: { 'Content-Type' => 'application/json' } ), logger: nil ) { |self| ... } click to toggle source
# File lib/module_pos/fiscalization/client.rb, line 112
def initialize(
  host:,
  username: nil,
  pass: nil,
  conn: Faraday.new(
    url:     host,
    headers: { 'Content-Type' => 'application/json' }
  ),
  logger: nil
)
  @http = JsonRequest.new(conn, logger)
  @username = username
  @pass = pass
  yield(self) if block_given?
end

Public Instance Methods

associate(uid) click to toggle source

Return associate scope, for actions to associate recourse @param [String] uid @return [ModulePos::V1::Client::Scopes::Associate]

# File lib/module_pos/fiscalization/client.rb, line 90
def associate(uid)
  Scopes::Associate.new("#{ASSOCIATE_PATH}/#{uid}", http)
end
docs() click to toggle source

Return associate scope, for actions to doc @return [ModulePos::V1::Client::Scopes::Docs]

# File lib/module_pos/fiscalization/client.rb, line 96
def docs
  Scopes::Docs.new(DOC_PATH, http, username: username, pass: pass)
end
status() click to toggle source

Request POS status, return

{ status: "READY|ASSOCIATED|FAILED", date_time: <DateTime> }

@return [Hash]

# File lib/module_pos/fiscalization/client.rb, line 103
def status
  res = http.call(username, pass) { |conn| conn.get(STATUS_PATH) }
  ModulePos::Fiscalization::Entities::PosStatus.new(res)
end