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' }.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.
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/atol/request/post_document.rb', line 13 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) @url = "#{Atol::URL}/#{@config.group_code}/#{operation}?tokenid=#{token}" @body = body @req_logger = req_logger @res_logger = res_logger end |
Instance Method Details
#call ⇒ Object
26 27 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 26 def call uri = URI(url) req = Net::HTTP::Post.new(uri, HEADERS) req.body = body if req_logger.respond_to?(:call) req_logger.call(req) end res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(req) end if res_logger.respond_to?(:call) res_logger.call(res) end res end |