od-payments 0.1.8 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d27cc5d3a06d86960c26449056cfa427456a14a30b87858c8478b7ae647ea9e4
4
- data.tar.gz: b6080506e5e43e9cdd134be2eb5de5866456654f3de84c650a772d3d55f4d526
3
+ metadata.gz: 757eb2d922170b88687cf60cf366c32f498f7b014858b05da3e00fd75decf32f
4
+ data.tar.gz: 478e93fcc7314d90fed5d49c5164934a8345ca544fa1c3277de91ddee7d04f71
5
5
  SHA512:
6
- metadata.gz: d58161008e6e53ef318c583a0006082d76817da95dea3109fe927a561238dcec32ca36e46c93afe7fd98b2c31bb1c4e355cb3f4f9a1d177e529f752bb76e730f
7
- data.tar.gz: 7c593ad9aae9c5fab2d867cac88e35c75bc54594a13093173bc85a7c7febcfed6fc25f43570c3698d2b9f8954d81284c1870787ad3c5e593f05d55207a6e9b87
6
+ metadata.gz: ba9f927f67ff332b93d1555a27d2b496fbb594684c0f3ba390dbf9b5eb505049eb84cf8413a5f8e775d09e61dce6b6321d1a78e474e775ccd497d1f3087153fb
7
+ data.tar.gz: 1ba2e2df1b737a455c503cae17e207c2544778de634732ade1a120024c8d84aa33ebc5e3098b9a20874f4832a0c99cb03b9a0685e359aaf6a9780948a0149fab
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- od-payments (0.1.8)
4
+ od-payments (0.2.0)
5
+ square.rb (~> 6.3.0.20200826)
5
6
  stripe (~> 5.22.0)
6
7
 
7
8
  GEM
@@ -27,23 +28,36 @@ GEM
27
28
  tzinfo (~> 1.1)
28
29
  zeitwerk (~> 2.2, >= 2.2.2)
29
30
  builder (3.2.4)
31
+ certifi (2018.01.18)
30
32
  concurrent-ruby (1.1.6)
31
33
  crass (1.0.6)
32
34
  diff-lcs (1.4.4)
33
35
  erubi (1.9.0)
34
36
  faker (2.13.0)
35
37
  i18n (>= 1.6, < 2)
38
+ faraday (0.17.3)
39
+ multipart-post (>= 1.2, < 3)
40
+ faraday-http-cache (2.2.0)
41
+ faraday (>= 0.8)
42
+ faraday_middleware (0.14.0)
43
+ faraday (>= 0.7.4, < 1.0)
36
44
  generator_spec (0.9.4)
37
45
  activesupport (>= 3.0.0)
38
46
  railties (>= 3.0.0)
39
47
  i18n (1.8.5)
40
48
  concurrent-ruby (~> 1.0)
49
+ little-plugger (1.1.4)
50
+ logging (2.3.0)
51
+ little-plugger (~> 1.1)
52
+ multi_json (~> 1.14)
41
53
  loofah (2.6.0)
42
54
  crass (~> 1.0.2)
43
55
  nokogiri (>= 1.5.9)
44
56
  method_source (1.0.0)
45
57
  mini_portile2 (2.4.0)
46
58
  minitest (5.14.1)
59
+ multi_json (1.15.0)
60
+ multipart-post (2.1.1)
47
61
  nokogiri (1.10.10)
48
62
  mini_portile2 (~> 2.4.0)
49
63
  rack (2.2.3)
@@ -74,6 +88,12 @@ GEM
74
88
  diff-lcs (>= 1.2.0, < 2.0)
75
89
  rspec-support (~> 3.9.0)
76
90
  rspec-support (3.9.3)
91
+ square.rb (6.3.0.20200826)
92
+ certifi (~> 2018.1)
93
+ faraday (~> 0.15)
94
+ faraday-http-cache (~> 2.0)
95
+ faraday_middleware (~> 0.13)
96
+ logging (~> 2.2)
77
97
  stripe (5.22.0)
78
98
  thor (1.0.1)
79
99
  thread_safe (0.3.6)
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Od::Payments
2
2
 
3
+ stripe version: 5.22.0
4
+ square version: 6.3.0.20200826
3
5
  ## Installation
4
6
 
5
7
  ### Step 1
@@ -15,14 +17,14 @@ gem 'od-payments'
15
17
  create `config/initializers/od_payments.rb` with
16
18
 
17
19
  ```ruby
18
- Od::Payments.configure do |od_payment|
19
- od_payment.api_key_stripe = 'api_key_stripe'
20
- od_payment.access_token_square = 'access_token_square'
21
- od_payment.environment_square = 'environment_square'
22
- od_payment.adapter = :stripe # :stripe or :square, :stripe is adapter for default
23
- end
20
+ Od::Payments.configure(:stripe,{api_key_stripe: 'api_key_stripe'})
24
21
  ```
25
22
 
23
+ | Prop | Type | Required | Description |
24
+ | ------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------- |
25
+ | adapter | Symbol | Yes | :stripe, :square |
26
+ | options | Hash | No | { api_key_stripe: 'api_key_stripe', access_token_square: 'access_token_square', environment_square: 'environment_square'} |
27
+
26
28
  ## Usage
27
29
 
28
30
  ### Payment
@@ -125,12 +127,12 @@ Od::Payments::Customer.create(
125
127
  )
126
128
  ```
127
129
 
128
- | Prop | Type | Required | Description |
129
- | ------ | ---- | -------- | ----------------------------------------------------------------- |
130
+ | Prop | Type | Required | Description |
131
+ | ------ | ---- | -------- | ----------------------------------------------------------- |
130
132
  | params | Hash | Yes | Show params in https://stripe.com/docs/api/customers/create |
131
133
 
132
-
133
134
  show
135
+
134
136
  ```ruby
135
137
  Od::Payments::Customer.show("customer_id")
136
138
  ```
@@ -2,6 +2,7 @@ require 'od/payments/version'
2
2
  require 'od/payments/errors'
3
3
  require 'od/payments/resources'
4
4
  require 'stripe'
5
+ require 'square'
5
6
  module Od
6
7
  module Payments
7
8
  class << self
@@ -9,10 +10,15 @@ module Od
9
10
  attr_accessor :api_key_stripe
10
11
  attr_accessor :access_token_square
11
12
  attr_accessor :environment_square
12
-
13
- def configure
14
- yield(self) if block_given?
15
-
13
+ attr_accessor :client_square
14
+ attr_accessor :production
15
+
16
+ def configure(adapter, options = {})
17
+ self.adapter = adapter
18
+ @api_key_stripe = options[:api_key_stripe]
19
+ @access_token_square = options[:access_token_square]
20
+ @environment_square = options[:environment_square]
21
+ @production = options[:production]
16
22
  initializate_stripe if validate_stripe
17
23
  initializate_square if validate_square
18
24
  end
@@ -30,7 +36,10 @@ module Od
30
36
  end
31
37
 
32
38
  def initializate_square
33
- 'comming soon'
39
+ @client_square = Square::Client.new(
40
+ access_token: access_token_square,
41
+ environment: production ? 'production' : 'sandbox'
42
+ )
34
43
  end
35
44
 
36
45
  def adapter
@@ -41,7 +50,7 @@ module Od
41
50
  end
42
51
 
43
52
  def adapter=(adapter)
44
- raise Od::Payments::APIError, 'Invalid Adapter' if adapter.class != Symbol && !ADAPTERS.include?(adapter)
53
+ raise Od::Payments::APIError, 'Invalid Adapter' if adapter.class != Symbol || !ADAPTERS.include?(adapter)
45
54
 
46
55
  @adapter = adapter
47
56
  end
@@ -6,14 +6,27 @@ module Od
6
6
  when :stripe
7
7
  Stripe::PaymentIntent.create({
8
8
  currency: 'usd',
9
- amount: (amount * 100).to_i,
9
+ amount: (amount * 100).to_i
10
10
  }.merge(option))
11
+ when :square
12
+ result = Od::Payments.client_square.payments.create_payment(
13
+ body: {
14
+ idempotency_key: SecureRandom.uuid,
15
+ amount_money: {
16
+ amount: amount,
17
+ currency: 'USD'
18
+ }
19
+ }.merge(option)
20
+ )
21
+
22
+ if result.success?
23
+ result.data
24
+ elsif result.error?
25
+ raise Od::Payments::CardError.new(result.errors, {})
26
+ end
11
27
  end
12
28
  rescue Stripe::CardError => e
13
- case Od::Payments.adapter
14
- when :stripe
15
- raise Od::Payments::CardError.new(e.error.message, {})
16
- end
29
+ raise Od::Payments::CardError.new(e.error.message, {})
17
30
  rescue Stripe::StripeError => e
18
31
  raise Od::Payments::OdPaymentsError, e.error.message
19
32
  end
@@ -40,12 +53,22 @@ module Od
40
53
  raise Od::Payments::OdPaymentsError, e.error.message
41
54
  end
42
55
 
43
- def self.void(payment_intent_id)
56
+ def self.void(payment_intent_id, option = {})
44
57
  case Od::Payments.adapter
45
58
  when :stripe
46
59
  Stripe::Refund.create({
47
- payment_intent: payment_intent_id
48
- })
60
+ payment_intent: payment_intent_id
61
+ }.merge(option))
62
+ when :square
63
+ result = Od::Payments.client_square.refunds.refund_payment(body: {
64
+ payment_id: payment_intent_id,
65
+ idempotency_key: SecureRandom.uuid
66
+ }.merge(option))
67
+ if result.success?
68
+ result.data
69
+ elsif result.error?
70
+ raise Od::Payments::CardError.new(result.errors, {})
71
+ end
49
72
  end
50
73
  rescue Stripe::CardError => e
51
74
  raise Od::Payments::CardError.new(e.error.message, {})
@@ -1,5 +1,5 @@
1
1
  module Od
2
2
  module Payments
3
- VERSION = "0.1.8"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency 'generator_spec'
30
30
  spec.add_development_dependency 'rspec', '~> 4.0.1'
31
31
  # spec.add_dependency 'square.rb', '~> 6.1.0'
32
+ spec.add_dependency 'square.rb', '~> 6.3.0.20200826'
32
33
  spec.add_dependency 'stripe', '~> 5.22.0'
33
34
  spec.add_development_dependency 'faker'
34
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: od-payments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Onward Web Development
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-06 00:00:00.000000000 Z
11
+ date: 2020-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: generator_spec
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.0.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: square.rb
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 6.3.0.20200826
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 6.3.0.20200826
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: stripe
43
57
  requirement: !ruby/object:Gem::Requirement