paypal_permissions 0.0.3.4 → 0.0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/active_merchant/billing/gateways/paypal_permissions.rb +3 -0
- data/lib/paypal_permissions/version.rb +1 -1
- metadata +17 -20
- data/examples.old/app/controllers/paypal_perms_controller.rb +0 -109
- data/examples.old/app/models/paypal_perm.rb +0 -32
- data/examples.old/db/migrate/paypal_permissions_create_paypal_perms.rb +0 -37
@@ -1,4 +1,7 @@
|
|
1
|
+
# load the active_merchant modules before defining them which would result in unitialized constants otherwise
|
1
2
|
require 'active_merchant'
|
3
|
+
require 'active_merchant/billing'
|
4
|
+
require 'active_merchant/billing/gateways'
|
2
5
|
require 'uri'
|
3
6
|
require 'cgi'
|
4
7
|
require 'openssl'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paypal_permissions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-04-16 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153057240 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153057240
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: vcr
|
27
|
-
requirement: &
|
27
|
+
requirement: &2153056060 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.11'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153056060
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: railties
|
38
|
-
requirement: &
|
38
|
+
requirement: &2153054900 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '3.0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2153054900
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activesupport
|
49
|
-
requirement: &
|
49
|
+
requirement: &2153054020 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '3.0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2153054020
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: activemerchant
|
60
|
-
requirement: &
|
60
|
+
requirement: &2153053280 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2153053280
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &2153051660 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '2.6'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2153051660
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: ammeter
|
82
|
-
requirement: &
|
82
|
+
requirement: &2153050800 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2153050800
|
91
91
|
description: ! '"A gem to support PayPal Permissions API for Rails applications using
|
92
92
|
ActiveMerchant."'
|
93
93
|
email:
|
@@ -101,9 +101,6 @@ files:
|
|
101
101
|
- README.md
|
102
102
|
- Rakefile
|
103
103
|
- config/locales/en.yml
|
104
|
-
- examples.old/app/controllers/paypal_perms_controller.rb
|
105
|
-
- examples.old/app/models/paypal_perm.rb
|
106
|
-
- examples.old/db/migrate/paypal_permissions_create_paypal_perms.rb
|
107
104
|
- examples/.gitignore
|
108
105
|
- examples/Gemfile
|
109
106
|
- examples/README.rdoc
|
@@ -199,7 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
199
196
|
version: '0'
|
200
197
|
segments:
|
201
198
|
- 0
|
202
|
-
hash: -
|
199
|
+
hash: -4480802901043442845
|
203
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
204
201
|
none: false
|
205
202
|
requirements:
|
@@ -208,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
205
|
version: '0'
|
209
206
|
segments:
|
210
207
|
- 0
|
211
|
-
hash: -
|
208
|
+
hash: -4480802901043442845
|
212
209
|
requirements: []
|
213
210
|
rubyforge_project: paypal_permissions
|
214
211
|
rubygems_version: 1.8.10
|
@@ -1,109 +0,0 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
|
-
class PaypalPermsController < ApplicationController
|
4
|
-
def index
|
5
|
-
render :text => "paypal perms"
|
6
|
-
end
|
7
|
-
|
8
|
-
def new
|
9
|
-
school_id = session[:school_id]
|
10
|
-
@paypal_perms = PaypalPerm.new(:school_id => school_id)
|
11
|
-
end
|
12
|
-
|
13
|
-
def create
|
14
|
-
school = School.find_by_id params[:paypal_perm][:school_id]
|
15
|
-
if school
|
16
|
-
paypal_perms = PaypalPerm.new(:school => school)
|
17
|
-
if paypal_perms.save
|
18
|
-
g = ::PAYPAL_PERMISSIONS_GATEWAY
|
19
|
-
callback_url = paypal_perms_request_permissions_callback_url
|
20
|
-
# Make @paypal_response an instance variable just to facilitate testing
|
21
|
-
@paypal_response = g.request_permissions URI.encode(callback_url), 'DIRECT_PAYMENT'
|
22
|
-
if @paypal_response[:ack] == 'Success'
|
23
|
-
token = @paypal_response[:token]
|
24
|
-
if token.present?
|
25
|
-
paypal_perms.update_attribute :request_permissions_request_token, token
|
26
|
-
url = g.redirect_user_to_paypal_url(token)
|
27
|
-
redirect_to url
|
28
|
-
return
|
29
|
-
else
|
30
|
-
# this should never happen, hence, it's pretty much unrecoverable
|
31
|
-
raise
|
32
|
-
end
|
33
|
-
else
|
34
|
-
message = @paypal_response[:errors][0][:message] # TODO: need a method to find error messages or display a generic message
|
35
|
-
flash[:error] = message
|
36
|
-
redirect_to new_paypal_perm_path
|
37
|
-
end
|
38
|
-
else
|
39
|
-
message = "unable to create paypal_perms object"
|
40
|
-
flash[:error] = message
|
41
|
-
redirect_to new_paypal_perm_path
|
42
|
-
end
|
43
|
-
else
|
44
|
-
message = "can't find that school"
|
45
|
-
flash[:error] = message
|
46
|
-
redirect_to new_paypal_perm_path
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# Really, request_permissions_callback should do all this.
|
51
|
-
def update
|
52
|
-
paypal_perms = PaypalPerm.find_by_request_permissions_request_token params[:request_token]
|
53
|
-
if paypal_perms
|
54
|
-
g = ::PAYPAL_PERMISSIONS_GATEWAY
|
55
|
-
# Make @paypal_response an instance variable just to facilitate testing
|
56
|
-
@paypal_response = g.get_access_token paypal_perms.request_permissions_request_token, paypal_perms.request_permissions_callback_verifier
|
57
|
-
if @paypal_response[:ack] == 'Success'
|
58
|
-
paypal_perms.update_attributes({
|
59
|
-
:get_access_token_access_token => @paypal_response[:token],
|
60
|
-
:get_access_token_verifier => @paypal_response[:tokenSecret],
|
61
|
-
})
|
62
|
-
render :text => 'thanks for the access token'
|
63
|
-
else
|
64
|
-
flash[:error] = @paypal_response[:errors][0][:message] # TODO: need a method to find error messages or display a generic message
|
65
|
-
redirect_to new_paypal_perm_path
|
66
|
-
end
|
67
|
-
else
|
68
|
-
render :text => "that permission doesn't exist"
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def show
|
73
|
-
if params[:id] == 'request_permissions_callback'
|
74
|
-
render :text => "We're sorry to see that you haven't given us permission to execute payment transactions."
|
75
|
-
else
|
76
|
-
respond_with PaypalPerm.find_by_id(params[:id])
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def request_permissions_callback
|
81
|
-
perms = PaypalPerm.find_by_request_permissions_request_token params[:request_token]
|
82
|
-
if perms
|
83
|
-
if perms.valid?
|
84
|
-
if perms.update_attribute :request_permissions_callback_verifier, params[:verification_code]
|
85
|
-
update
|
86
|
-
else
|
87
|
-
render :text => "thanks for the permission, but i've got problems"
|
88
|
-
end
|
89
|
-
else
|
90
|
-
render :text => "perms wasn't valid: #{perms.errors}"
|
91
|
-
end
|
92
|
-
else
|
93
|
-
if Rails.env.development? || Rails.env.test?
|
94
|
-
perms = PaypalPerm.create({
|
95
|
-
:school_id => session[:school_id],
|
96
|
-
:request_permissions_request_token => params[:request_token],
|
97
|
-
:request_permissions_callback_verifier => params[:verification_code],
|
98
|
-
})
|
99
|
-
if perms
|
100
|
-
render :text => "that permission doesn't exist, but to facilitate testing i created it"
|
101
|
-
else
|
102
|
-
render :text => "that permission doesn't exist, and i couldn't create it, not even for testing"
|
103
|
-
end
|
104
|
-
else
|
105
|
-
render :text => "perms isn't valid: #{perms.errors.inspect}"
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
class PaypalPerm < ActiveRecord::Base
|
2
|
-
belongs_to :school, :inverse_of => :paypal_perms
|
3
|
-
|
4
|
-
validates :school, :presence => true
|
5
|
-
# validates :request_permissions_ack, :presence => true
|
6
|
-
|
7
|
-
attr_accessible :school, :school_id,
|
8
|
-
:request_permissions_ack, :request_permissions_correlation_id, :request_permissions_request_token,
|
9
|
-
:request_permissions_verifier, :request_permissions_envelope_timestamp,
|
10
|
-
:request_permissions_errors, :request_permissions_raw_response,
|
11
|
-
:request_permissions_callback_ack, :request_permissions_callback_correlation_id, :request_permissions_callback_request_token,
|
12
|
-
:request_permissions_callback_verifier, :request_permissions_callback_envelope_timestamp,
|
13
|
-
:request_permissions_callback_errors, :request_permissions_callback_raw_response,
|
14
|
-
:get_access_token_ack, :get_access_token_correlation_id, :get_access_token_access_token,
|
15
|
-
:get_access_token_verifier, :get_access_token_envelope_timestamp,
|
16
|
-
:get_access_token_errors, :get_access_token_raw_response
|
17
|
-
|
18
|
-
public
|
19
|
-
def as_json(opts = {})
|
20
|
-
opts ||= {}
|
21
|
-
super({ :only => %w[id request_permissions_ack request_permissions_correlation_id request_permissions_request_token
|
22
|
-
request_permissions_verifier request_permissions_envelope_timestamp
|
23
|
-
request_permissions_errors request_permissions_raw_response
|
24
|
-
request_permissions_callback_ack request_permissions_callback_correlation_id request_permissions_callback_request_token
|
25
|
-
request_permissions_callback_verifier request_permissions_callback_envelope_timestamp
|
26
|
-
request_permissions_callback_errors request_permissions_callback_raw_response
|
27
|
-
get_access_token_ack get_access_token_correlation_id get_access_token_access_token
|
28
|
-
get_access_token_verifier get_access_token_envelope_timestamp
|
29
|
-
get_access_token_errors get_access_token_raw_response
|
30
|
-
] }.merge(opts))
|
31
|
-
end
|
32
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
class PaypalPermissionsCreatePaypalPerms < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
create_table(:paypal_perms) do |t|
|
4
|
-
t.integer "school_id", :null => false
|
5
|
-
|
6
|
-
# RequestPermissions response fields
|
7
|
-
t.string :request_permissions_ack
|
8
|
-
t.string :request_permissions_correlation_id
|
9
|
-
t.string :request_permissions_request_token
|
10
|
-
t.datetime :request_permissions_envelope_timestamp
|
11
|
-
t.text :request_permissions_errors
|
12
|
-
t.text :request_permissions_raw_response
|
13
|
-
|
14
|
-
# RequestPermissions callback fields
|
15
|
-
t.string :request_permissions_callback_ack
|
16
|
-
t.string :request_permissions_callback_correlation_id
|
17
|
-
t.string :request_permissions_callback_verifier
|
18
|
-
t.datetime :request_permissions_callback_envelope_timestamp
|
19
|
-
t.text :request_permissions_callback_errors
|
20
|
-
t.text :request_permissions_callback_raw_response
|
21
|
-
|
22
|
-
# GetAccessToken response fields
|
23
|
-
t.string :get_access_token_ack
|
24
|
-
t.string :get_access_token_correlation_id
|
25
|
-
t.string :get_access_token_access_token
|
26
|
-
t.string :get_access_token_verifier
|
27
|
-
t.datetime :get_access_token_envelope_timestamp
|
28
|
-
t.text :get_access_token_errors
|
29
|
-
t.text :get_access_token_raw_response
|
30
|
-
|
31
|
-
t.timestamps
|
32
|
-
end
|
33
|
-
|
34
|
-
add_index :paypal_perms, :request_permissions_request_token
|
35
|
-
add_index :paypal_perms, :get_access_token_access_token
|
36
|
-
end
|
37
|
-
end
|