adenaecommerce/pombo

View on GitHub
lib/pombo/webservice/cpp/service_response.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'sax-machine'

module Pombo
  module Webservice
    class CPP
      # Response standard for service delivery
      # @!method [rw] code
      #   @return [String]
      # @!method [rw] value
      #   @return [Float]
      # @!method [rw] delivery_time
      #   @return [Fixnum]
      # @!method [rw] value_in_hand
      #   @return [Float]
      # @!method [rw] value_delivery_notice
      #   @return [Float]
      # @!method [rw] value_declared_value
      #   @return [Float]
      # @!method [rw] value_without_additions
      #   @return [Float]
      # @!method [rw] delivery_home
      #   @return [Boolean]
      # @!method [rw] delivery_sartuday
      #   @return [Boolean]
      # @!method [rw] error_code
      #   @return [String]
      # @!method [rw] error_message
      #   @return [String]
      # @!method [rw] comments
      #   @return [String]
      class ServiceResponse
        include SAXMachine

        element :Codigo, as: :code
        element :Valor, as: :value do |value|
          Pombo::Support.str_real_to_float value
        end
        element :PrazoEntrega, as: :delivery_time do |value|
          value.to_i
        end
        element :ValorMaoPropria, as: :value_in_hand do |value|
          Pombo::Support.str_real_to_float value
        end
        element :ValorAvisoRecebimento, as: :value_delivery_notice do |value|
          Pombo::Support.str_real_to_float value
        end
        element :ValorValorDeclarado, as: :value_declared_value do |value|
          Pombo::Support.str_real_to_float value
        end
        element :ValorSemAdicionais, as: :value_without_additions do |value|
          Pombo::Support.str_real_to_float value
        end
        element :EntregaDomiciliar, as: 'delivery_home' do |value|
          value == 'S'
        end
        element :EntregaSabado, as: :delivery_sartuday do |value|
          value == 'S'
        end
        element :Erro, as: :error_code, default: '0'
        element :MsgErro, as: :error_message do
          Pombo.t "webservices.cpp.errors.#{ error_code }"
        end
        element :obsFim, as: :comments
      end
    end
  end
end