Sha256: 5205b281e1f65fbb7fa4ba9ebcb41da84addb351549f698f39ffe76d7d1c34fe

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

# Copyright (c) 2011, uEncode, Cássio Marques

module UEncode
  class Request

    include HTTParty
    require 'rubygems'
    require 'crack'

    format :xml
    
    def initialize(job)
      @job = job
    end

    def send
      url_base = "https://api.uencode.com/300/jobs"      
      key = @job.customerkey || UEncode.customer_key
      if @job.instance_of?(Job)
        response = self.class.post url_base, :body => @job.to_xml, :headers=>{"Authorization"=>key, "Accept"=>"text/xml"}
      elsif !@job.key.nil?
        response = self.class.get url_base + "/" + @job.key, :headers=>{"Authorization"=>key, "Accept"=>"text/xml"}
      else
        url = url_base
        if !@job.userdata.nil?
          url += "?userdata=" + URI::escape(@job.userdata)
        end
        response = self.class.get url, :headers=>{"Authorization"=>key, "Accept"=>"text/xml"}
      end
      parse_response response
    end

    private
    def parse_response(response_xml)
      code     = response_xml.code
      data     = Crack::XML.parse(response_xml.body)
      Response.new(
        :code     => code,
        :data     => data
      )
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
uencode-3.1.0 lib/uencode/request.rb