paypalrb 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ae1273de94e65fd45aa8038f0776052d5658f2acdd8828e9230da2ab3a01ac5
4
- data.tar.gz: 28b3602778a92e0ca0accb1951a5be82cfce028a51c9bba6a53a8f5c4be48787
3
+ metadata.gz: 32e63207df5329d80b150582834894e5a6b15c97a5e6b7b77ef28e79d0e2831b
4
+ data.tar.gz: ec267e0869c64b843a0507708014f6e1d4902ca38daa7da4a97882d92b1820af
5
5
  SHA512:
6
- metadata.gz: 60d1ee06802fb3accd5bc8a1eb065b22188901f27cb1657fb4ab072ae76512b1466f6af4a7e26ce50e92a8ae4de114ccf3aaa961e6c9713e97106e2bf1f8eca8
7
- data.tar.gz: e6a4858704fed4e564d78f13022d0dddd990987125e54e748a8518c421545771f80c1be210a815a80de43aa7e011882049e7681fa232cbaac8eabeb0f656cf59
6
+ metadata.gz: aec2db6e9aec16e1082958e0cf0f71636d90f6e14b2ed912d05221d6fb22262923bf2350c6da08bc6f0cb29b3da2edf31f83fcbcebdfd00c99474b52a1b9e7c9
7
+ data.tar.gz: 1adaf024dbcc4a8dfc0ca9885ceec221fe7c378dcb9524633cda7e11c399734d32c39e0a8ebd0ff5d66fd0747cc0de27c5681f2fb3f835bbbfcbba0777876f74
data/Gemfile.lock CHANGED
@@ -1,17 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paypalrb (0.1.1)
4
+ paypalrb (0.1.2)
5
5
  faraday (~> 2.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  dotenv (2.7.6)
11
- faraday (2.5.2)
11
+ faraday (2.6.0)
12
12
  faraday-net_http (>= 2.0, < 3.1)
13
13
  ruby2_keywords (>= 0.0.4)
14
- faraday-net_http (3.0.0)
14
+ faraday-net_http (3.0.1)
15
15
  rake (13.0.6)
16
16
  ruby2_keywords (0.0.5)
17
17
 
data/README.md CHANGED
@@ -14,14 +14,18 @@ gem 'paypalrb'
14
14
 
15
15
  ## Usage
16
16
 
17
- ### Generate an Access Token
17
+ ### Authentication
18
18
 
19
- Firstly you'll need to generate an Access Token. Set the Client ID and Secret
20
- An Access Token will be an OAuth2 token generated after authentication.
19
+ PayPal accepts authentication with either an access token or a client_id and client_secret.
21
20
 
21
+ This library has the ability to generate an access token like so:
22
22
 
23
23
  ```ruby
24
- @authentication = PayPal::Authentication.new(client_id: "", client_secret: "")
24
+ @authentication = PayPal::Authentication.new(
25
+ sandbox: true,
26
+ client_id: "",
27
+ client_secret: ""
28
+ )
25
29
 
26
30
  @authentication.get_token
27
31
  # => #<PayPal::AccessToken access_token="abc123", expires_in=123
@@ -30,7 +34,7 @@ An Access Token will be an OAuth2 token generated after authentication.
30
34
  Then once you have an access token, set it like so:
31
35
 
32
36
  ```ruby
33
- @client = PayPal::Client.new(access_token: "abc123")
37
+ @client = PayPal::Client.new(sandbox: true, access_token: "abc123")
34
38
  ```
35
39
 
36
40
  ### Products
@@ -73,6 +77,9 @@ Then once you have an access token, set it like so:
73
77
 
74
78
  # Captures payment for an order. The buyer must first approve the order.
75
79
  @client.orders.capture id: "123abc"
80
+
81
+ # Confirms a payment source for an order
82
+ @client.orders.confirm id: "123abc", source: {}
76
83
  ```
77
84
 
78
85
  ## Contributing
data/bin/console CHANGED
@@ -14,9 +14,9 @@ require 'dotenv/load'
14
14
  # require "pry"
15
15
  # Pry.start
16
16
 
17
- @authentication = PayPal::Authentication.new(client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"])
17
+ @authentication = PayPal::Authentication.new(sandbox: true, client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"])
18
18
 
19
- @client = PayPal::Client.new(access_token: ENV["ACCESS_TOKEN"])
19
+ @client = PayPal::Client.new(sandbox: true, access_token: ENV["ACCESS_TOKEN"])
20
20
 
21
21
  require "irb"
22
22
  IRB.start(__FILE__)
@@ -3,7 +3,7 @@ module PayPal
3
3
 
4
4
  attr_reader :client_id, :client_secret, :sandbox
5
5
 
6
- def initialize(client_id:, client_secret:, sandbox: true, adapter: Faraday.default_adapter)
6
+ def initialize(client_id:, client_secret:, sandbox:, adapter: Faraday.default_adapter)
7
7
  @client_id = client_id
8
8
  @client_secret = client_secret
9
9
  @sandbox = sandbox
@@ -2,7 +2,7 @@ module PayPal
2
2
  class Client
3
3
  attr_reader :access_token, :sandbox, :adapter
4
4
 
5
- def initialize(access_token:, sandbox: true, adapter: Faraday.default_adapter, stubs: nil)
5
+ def initialize(access_token:, sandbox:, adapter: Faraday.default_adapter, stubs: nil)
6
6
  @access_token = access_token
7
7
  @sandbox = sandbox
8
8
  @adapter = adapter
@@ -11,6 +11,10 @@ module PayPal
11
11
  @stubs = stubs
12
12
  end
13
13
 
14
+ def identity
15
+ IdentityResource.new(self)
16
+ end
17
+
14
18
  def products
15
19
  ProductsResource.new(self)
16
20
  end
@@ -0,0 +1,4 @@
1
+ module PayPal
2
+ class Identity < Object
3
+ end
4
+ end
@@ -0,0 +1,10 @@
1
+ module PayPal
2
+ class IdentityResource < Resource
3
+
4
+ def info
5
+ response = get_request("v1/identity/oauth2/userinfo?schema=paypalv1.1")
6
+ Identity.new(response.body)
7
+ end
8
+
9
+ end
10
+ end
@@ -61,5 +61,11 @@ module PayPal
61
61
  Order.new(response.body)
62
62
  end
63
63
 
64
+ def confirm(id:, source:)
65
+ attributes = {payment_source: source}
66
+ response = post_request("v2/checkout/orders/#{id}/confirm-payment-source", body: attributes.merge(params))
67
+ Order.new(response.body)
68
+ end
69
+
64
70
  end
65
71
  end
@@ -1,3 +1,3 @@
1
1
  module PayPal
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/pay_pal.rb CHANGED
@@ -15,9 +15,11 @@ module PayPal
15
15
 
16
16
  autoload :ProductsResource, "pay_pal/resources/products"
17
17
  autoload :OrdersResource, "pay_pal/resources/orders"
18
+ autoload :IdentityResource, "pay_pal/resources/identity"
18
19
 
19
20
  autoload :AccessToken, "pay_pal/objects/access_token"
20
21
  autoload :Product, "pay_pal/objects/product"
21
22
  autoload :Order, "pay_pal/objects/order"
23
+ autoload :Identity, "pay_pal/objects/identity"
22
24
 
23
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paypalrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dean Perry
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-15 00:00:00.000000000 Z
11
+ date: 2022-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -46,9 +46,11 @@ files:
46
46
  - lib/pay_pal/error.rb
47
47
  - lib/pay_pal/object.rb
48
48
  - lib/pay_pal/objects/access_token.rb
49
+ - lib/pay_pal/objects/identity.rb
49
50
  - lib/pay_pal/objects/order.rb
50
51
  - lib/pay_pal/objects/product.rb
51
52
  - lib/pay_pal/resource.rb
53
+ - lib/pay_pal/resources/identity.rb
52
54
  - lib/pay_pal/resources/orders.rb
53
55
  - lib/pay_pal/resources/products.rb
54
56
  - lib/pay_pal/version.rb