Sha256: d70257f156175ee0a41e21f3cffc08277e6195caff3a0811372d8d9393710a4c

Contents?: true

Size: 1.21 KB

Versions: 4

Compression:

Stored size: 1.21 KB

Contents

# encoding UTF-8

module CorreiosSigep
  module LogisticReverse
    class RequestCollectNumber < BaseClient
      def initialize(logistic_reverse, overrides={})
        @logistic_reverse = logistic_reverse
        @overrides        = overrides
        super()
      end

      def process
        xml = Builders::XML::RequestCollectNumber.build_xml(@logistic_reverse, @overrides)
        response = invoke(:solicitar_postagem_reversa, xml)
        process_response(response)
      end

      private

      def process_response(response)
        response_xml = response.to_xml.force_encoding('UTF-8')
        response_doc = Nokogiri::XML.parse(response_xml)
        code         = response_doc.search('//cod_erro').text.to_i

        unless response_doc.search('//codigo_erro').empty?
          new_code = response_doc.search('//codigo_erro').text.to_i
        end

        action([code, new_code || nil].compact).new(response_doc).run
      end

      def action(response_codes)
        if response_codes.all?{|response_code| response_code == Models::CorreiosResponseCodes::SUCCESS}
          CollectNumberActions::ProcessValidRequest
        else
          CollectNumberActions::ProcessInvalidRequest
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
correios_sigep-2.2.0 lib/correios_sigep/logistic_reverse/request_collect_number.rb
correios_sigep-2.1.1 lib/correios_sigep/logistic_reverse/request_collect_number.rb
correios_sigep-2.1.0 lib/correios_sigep/logistic_reverse/request_collect_number.rb
correios_sigep-2.0.0 lib/correios_sigep/logistic_reverse/request_collect_number.rb