Skip to content

Commit

Permalink
Version bump to 0.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
tc committed Dec 29, 2009
1 parent 4fc50d1 commit 4003161
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 47 deletions.
2 changes: 1 addition & 1 deletion VERSION
@@ -1 +1 @@
0.0.2
0.0.3
58 changes: 16 additions & 42 deletions lib/pay_request.rb → lib/request.rb
@@ -1,85 +1,59 @@
require 'net/http'
require 'net/https'
require 'json'
require 'config'
require 'pay_response'
require 'abstract_request'

module PaypalAdaptive
class NoDataError < Exception
end

class PayRequest
attr_accessor :pay_key
attr_accessor :errors
attr_accessor :env

def initialize(env = nil)
@env = env
@@config ||= PaypalAdaptive::Config.new(@env)
@@api_base_url ||= @@config.api_base_url
@@headers ||= @@config.headers
end
class PaypalRequest < PaypalAdaptive::AbstractRequest

def validate
#TODO the receiverList field not validating properly

# @@schema_filepath = "../lib/pay_request_schema.json"
# @@schema = File.open(@@schema_filepath, "rb"){|f| JSON.parse(f.read)}
# see page 42 of PP Adaptive Payments PDF for explanation of all fields.
#JSON::Schema.validate(@data, @@schema)
end

def pay(data)
raise NoDataError unless data

call_api(data, "/AdaptivePayments/Pay")

response_data = call_api(data, "/AdaptivePayments/Pay")
PaypalAdaptive::PayResponse.new(response_data, @env)
end

def payment_details(data)
raise NoDataError unless data

call_api(data, "/AdaptivePayments/PaymentDetails")
end

def preapproval(data)
raise NoDataError unless data

call_api(data, "/AdaptivePayments/Preapproval")
end

def preapproval_details(data)
raise NoDataError unless data

call_api(data, "/AdaptivePayments/PreapprovalDetails")
end

def cancel_preapproval(data)
raise NoDataError unless data

call_api(data, "/AdaptivePayments/CancelPreapproval")
end

def convert_currency(data)
raise NoDataError unless data

call_api(data, "/AdaptivePayments/ConvertCurrency")
end

def refund(data)
raise NoDataError unless data

call_api(data, "/AdaptivePayments/Refund")
end

def call_api(data, path)
#hack fix: JSON.unparse doesn't work in Rails 2.3.5; only {}.to_json does..
api_request_data = JSON.unparse(data) rescue data.to_json
url = URI.parse @@api_base_url
http = Net::HTTP.new(url.host, 443)
http.use_ssl = (url.scheme == 'https')

resp, response_data = http.post(path, api_request_data, @@headers)
pp_response = PaypalAdaptive::PayResponse.new(response_data, @env)
end
end
end

end
6 changes: 2 additions & 4 deletions lib/pay_response.rb → lib/response.rb
@@ -1,12 +1,10 @@
require 'json'

module PaypalAdaptive
class PayResponse
class Response
def initialize(response, env=nil)
@@config ||= PaypalAdaptive::Config.new(env)
@@paypal_base_url ||= @@config.paypal_base_url

@json_response = JSON.parse(response)
@json_response = response
end

def success?
Expand Down
Empty file added test/payment_details_test.rb
Empty file.

0 comments on commit 4003161

Please sign in to comment.