Sha256: f7fc2687032f48c2c6cd903ec254605b6c1a3698776edf9e673581f0e12f9405
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
# encoding: UTF-8 require 'net/http' require 'uri' class Correios::Frete::WebService URL = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx" FORMATS = { :caixa_pacote => 1, :rolo_prisma => 2 } CONDITIONS = { true => "S", false => "N" } def request(frete, service_types) Net::HTTP.get(URI.parse("#{URL}?#{params_for(frete, service_types)}")) end private def params_for(frete, service_types) "sCepOrigem=#{frete.cep_origem}&" + "sCepDestino=#{frete.cep_destino}&" + "nVlPeso=#{frete.peso}&" + "nVlComprimento=#{frete.comprimento}&" + "nVlAltura=#{frete.altura}&" + "nVlLargura=#{frete.largura}&" + "nVlDiametro=#{frete.diametro}&" + "nCdFormato=#{FORMATS[frete.formato]}&" + "sCdMaoPropria=#{CONDITIONS[frete.mao_propria]}&" + "sCdAvisoRecebimento=#{CONDITIONS[frete.aviso_recebimento]}&" + "nVlValorDeclarado=#{frete.valor_declarado}&" + "nCdServico=#{service_codes_for(service_types)}&" + "nCdEmpresa=#{frete.codigo_empresa}&" + "sDsSenha=#{frete.senha}&" + "StrRetorno=xml" end def service_codes_for(service_types) service_types.map { |type| Correios::Frete::Servico.code_from_type(type) }.join(",") end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
correios-frete-0.3.0 | lib/correios/frete/web_service.rb |
correios-frete-0.2.1 | lib/correios/frete/web_service.rb |
correios-frete-0.2.0 | lib/correios/frete/web_service.rb |