class CorreiosToolkit::ConsultaCep

Public Class Methods

new(cep:) click to toggle source
# File lib/correios_toolkit/consulta_cep.rb, line 14
def initialize(cep:)
  cep = cep.scan(/[0-9]/).join

  raise(LengthError, "Wrong CEP format, expected CEP to have 8 numbers but #{cep.size} was found.") if cep.size != 8

  @cep = cep
end
request_data_for(cep:) click to toggle source
# File lib/correios_toolkit/consulta_cep.rb, line 9
def self.request_data_for(cep:)
  consulta_cep = new(cep: cep)
  consulta_cep.data
end

Public Instance Methods

data() click to toggle source
# File lib/correios_toolkit/consulta_cep.rb, line 22
def data
  request(payload: payload, response_node: 'consultaCEP')
end

Private Instance Methods

payload() click to toggle source
# File lib/correios_toolkit/consulta_cep.rb, line 28
    def payload
      <<-EOXML
        <x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cli="http://cliente.bean.master.sigep.bsb.correios.com.br/">
          <x:Header/>
          <x:Body>
            <cli:consultaCEP>
              <cep>#{@cep}</cep>
            </cli:consultaCEP>
          </x:Body>
        </x:Envelope>
      EOXML
    end