Class: Atol::Request::PostDocument
- Inherits:
-
Object
- Object
- Atol::Request::PostDocument
- Defined in:
- lib/atol/request/post_document.rb,
lib/atol/request/post_document/item/body.rb,
lib/atol/request/post_document/sell/body.rb
Defined Under Namespace
Constant Summary collapse
- OPERATIONS =
i[sell sell_refund sell_correction buy buy_refund buy_correction].freeze
- HEADERS =
{ 'Content-Type' => 'application/json; charset=utf-8' }.freeze
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(operation:, token:, body:, config: nil, req_logger: nil, res_logger: nil) ⇒ PostDocument
constructor
A new instance of PostDocument.
Constructor Details
#initialize(operation:, token:, body:, config: nil, req_logger: nil, res_logger: nil) ⇒ PostDocument
Returns a new instance of PostDocument.
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/atol/request/post_document.rb', line 14 def initialize(operation:, token:, body:, config: nil, req_logger: nil, res_logger: nil) @config = config || Atol.config raise(Atol::ConfigExpectedError) unless @config.is_a?(Atol::Config) raise(Atol::MissingConfigError, 'group_code missing') if @config.group_code.empty? raise(Atol::UnknownOperationError, operation.to_s) unless OPERATIONS.include?(operation.to_sym) @operation = operation @token = token @body = body @req_logger = req_logger @res_logger = res_logger end |
Instance Method Details
#call ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/atol/request/post_document.rb', line 28 def call http_client = @config.http_client uri = URI("#{@config.api_url}/#{@config.group_code}/#{@operation}") req_headers = HEADERS.merge('Token' => @token) req = http_client::Post.new(uri, req_headers) req.body = @body @req_logger.call(req) if @req_logger.respond_to?(:call) res = http_client.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(req) end @res_logger.call(res) if @res_logger.respond_to?(:call) res end |