Sha256: b8664073e33fa9f4a4853ed9f8e93006c2f1254cc363b4f55f3c5023f7765f3b

Contents?: true

Size: 835 Bytes

Versions: 1

Compression:

Stored size: 835 Bytes

Contents

require 'nokogiri'
require 'typhoeus'

require "rrd-track/errors"
require "rrd-track/request/tracking"
require "rrd-track/response/tracking"

module RRD
  class Client
    
    def request(request, &block)
      response = Typhoeus::Request.get(tracking_api_url, {
        timeout: RRD.config.timeout,
        params: request.api_params,
        headers: { Accept: "application/xml" }
      })

      # Parse the request
      xml = Nokogiri::XML.parse(response.body)

      if (error = xml.search('error')).any?
        code = error.search('code').text
        description = error.search('description').text

        raise Error.for_code(code).new(code, description)
      end

      request.response_handler(xml)
    end

    private
    
    def tracking_api_url
      "http://www.ppxtrack.com/api/ParcelTracking"
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rrd-track-1.0.1 lib/rrd-track/client.rb