payrex-ruby 0.2.3 → 0.2.5

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: 103e2049b70a972b5995bcec17e7818bd9c28a40169522c2290a02c3b0e0bab4
4
- data.tar.gz: f23b06044e54af6ceed20ebefaffd12f54d60a8a83ccd050e198767518e2daff
3
+ metadata.gz: d7c49f394c25feab4ff376615d550792a83de2c2a64aa61207c21b8821c2607c
4
+ data.tar.gz: d8980ccd6a3b5cd6b68e9bee80f1312a60e66e630f378974ccbc50fc0db6803b
5
5
  SHA512:
6
- metadata.gz: 0a45a650b0d230e765c7397fd460e0f918381d82ed60c0d396d580cd8e4402ad7d77a0c063299f04be96b09d241365c53e76af4b76fc24a52186c672e51fa824
7
- data.tar.gz: 8a39cd749b95e4193c561c4d710cedb1994b9309a32871f1c349facaccf70329f1005814e30f077f850a4522ff31365e49a53867e7719f65ed8f5bc6c86ad3ec
6
+ metadata.gz: 31dc305db78be2c7fa367e2472ab03082e247fa3b00b4c4362bf609c082d7018d890fc4122149af3f461313f0e82e60077a1df982955b0194cdbf786b348c4e3
7
+ data.tar.gz: 6bbdd917dcff61578d3e0dba55d07c8b59ef7ea122e18c9d616aeaefedc5096aab770cdbcf5c31f730e6f9d18c01863ba5e74ad3fcfea2e3982aaf96b26ea4d5
data/lib/config.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Payrex
2
2
  class Config
3
3
  attr_reader :api_base_url,
4
- :api_key
4
+ :api_key
5
5
 
6
6
  API_BASE_URL = "https://api.payrexhq.com"
7
7
 
@@ -2,29 +2,26 @@ module Payrex
2
2
  module Entities
3
3
  class CheckoutSession
4
4
  attr_reader :id,
5
- :resource,
6
- :customer_reference_id,
7
- :client_secret,
8
- :status,
9
- :currency,
10
- :line_items,
11
- :livemode,
12
- :url,
13
- :payment_intent,
14
- :metadata,
15
- :success_url,
16
- :cancel_url,
17
- :payment_methods,
18
- :capture_type,
19
- :description,
20
- :submit_type,
21
- :expires_at,
22
- :created_at,
23
- :updated_at
5
+ :customer_reference_id,
6
+ :client_secret,
7
+ :status,
8
+ :currency,
9
+ :line_items,
10
+ :livemode,
11
+ :url,
12
+ :payment_intent,
13
+ :metadata,
14
+ :success_url,
15
+ :cancel_url,
16
+ :payment_methods,
17
+ :description,
18
+ :submit_type,
19
+ :expires_at,
20
+ :created_at,
21
+ :updated_at
24
22
 
25
23
  def initialize(api_resource)
26
24
  @id = api_resource.data["id"]
27
- @resource = api_resource.data["resource"]
28
25
  @customer_reference_id = api_resource.data["customer_reference_id"]
29
26
  @client_secret = api_resource.data["client_secret"]
30
27
  @status = api_resource.data["status"]
@@ -32,12 +29,15 @@ module Payrex
32
29
  @line_items = api_resource.data["line_items"]
33
30
  @livemode = api_resource.data["livemode"]
34
31
  @url = api_resource.data["url"]
35
- @payment_intent = api_resource.data["payment_intent"]
32
+ @payment_intent = ::Payrex::Entities::PaymentIntent.new(
33
+ ::Payrex::ApiResource.new(
34
+ api_resource.data["payment_intent"]
35
+ )
36
+ )
36
37
  @metadata = api_resource.data["metadata"]
37
38
  @success_url = api_resource.data["success_url"]
38
39
  @cancel_url = api_resource.data["cancel_url"]
39
40
  @payment_methods = api_resource.data["payment_methods"]
40
- @capture_type = api_resource.data["capture_type"]
41
41
  @description = api_resource.data["description"]
42
42
  @submit_type = api_resource.data["submit_type"]
43
43
  @expires_at = api_resource.data["expires_at"]
@@ -2,12 +2,12 @@ module Payrex
2
2
  module Entities
3
3
  class Event
4
4
  attr_reader :id,
5
- :data,
6
- :type,
7
- :pending_webhooks,
8
- :previous_attributes,
9
- :created_at,
10
- :updated_at
5
+ :data,
6
+ :type,
7
+ :pending_webhooks,
8
+ :previous_attributes,
9
+ :created_at,
10
+ :updated_at
11
11
 
12
12
  def initialize(api_resource)
13
13
  @id = api_resource.data["id"]
@@ -2,7 +2,7 @@ module Payrex
2
2
  module Entities
3
3
  class Listing
4
4
  attr_reader :data,
5
- :has_more
5
+ :has_more
6
6
 
7
7
  def initialize(data:, has_more:)
8
8
  @data = data
@@ -2,15 +2,13 @@ module Payrex
2
2
  module Entities
3
3
  class Merchant
4
4
  attr_reader :id,
5
- :resource,
6
- :connection_type,
7
- :livemode,
8
- :created_at,
9
- :updated_at
5
+ :connection_type,
6
+ :livemode,
7
+ :created_at,
8
+ :updated_at
10
9
 
11
10
  def initialize(api_resource)
12
11
  @id = api_resource.data["id"]
13
- @resource = api_resource.data["resource"]
14
12
  @connection_type = api_resource.data["connection_type"]
15
13
  @livemode = api_resource.data["livemode"]
16
14
  @created_at = api_resource.data["created_at"]
@@ -2,8 +2,9 @@ module Payrex
2
2
  module Entities
3
3
  class PaymentIntent
4
4
  attr_reader :id,
5
- :resource,
6
5
  :amount,
6
+ :amount_received,
7
+ :amount_capturable,
7
8
  :client_secret,
8
9
  :currency,
9
10
  :description,
@@ -22,8 +23,9 @@ module Payrex
22
23
 
23
24
  def initialize(api_resource)
24
25
  @id = api_resource.data["id"]
25
- @resource = api_resource.data["resource"]
26
26
  @amount = api_resource.data["amount"]
27
+ @amount_received = api_resource.data["amount_received"]
28
+ @amount_capturable = api_resource.data["amount_capturable"]
27
29
  @client_secret = api_resource.data["client_secret"]
28
30
  @currency = api_resource.data["currency"]
29
31
  @description = api_resource.data["description"]
@@ -2,17 +2,15 @@ module Payrex
2
2
  module Entities
3
3
  class PaymentMethod
4
4
  attr_reader :id,
5
- :resource,
6
- :type,
7
- :billing_details,
8
- :livemode,
9
- :metadata,
10
- :created_at,
11
- :updated_at
5
+ :type,
6
+ :billing_details,
7
+ :livemode,
8
+ :metadata,
9
+ :created_at,
10
+ :updated_at
12
11
 
13
12
  def initialize(api_resource)
14
13
  @id = api_resource.data["id"]
15
- @resource = api_resource.data["resource"]
16
14
  @type = api_resource.data["type"]
17
15
  @billing_details = api_resource.data["billing_details"]
18
16
  @livemode = api_resource.data["livemode"]
@@ -2,22 +2,20 @@ module Payrex
2
2
  module Entities
3
3
  class Refund
4
4
  attr_reader :id,
5
- :resource,
6
- :amount,
7
- :currency,
8
- :livemode,
9
- :status,
10
- :description,
11
- :reason,
12
- :remarks,
13
- :payment_id,
14
- :metadata,
15
- :created_at,
16
- :updated_at
5
+ :amount,
6
+ :currency,
7
+ :livemode,
8
+ :status,
9
+ :description,
10
+ :reason,
11
+ :remarks,
12
+ :payment_id,
13
+ :metadata,
14
+ :created_at,
15
+ :updated_at
17
16
 
18
17
  def initialize(api_resource)
19
18
  @id = api_resource.data["id"]
20
- @resource = api_resource.data["resource"]
21
19
  @amount = api_resource.data["amount"]
22
20
  @currency = api_resource.data["currency"]
23
21
  @livemode = api_resource.data["livemode"]
@@ -2,19 +2,17 @@ module Payrex
2
2
  module Entities
3
3
  class Webhook
4
4
  attr_reader :id,
5
- :resource,
6
- :secret_key,
7
- :status,
8
- :description,
9
- :livemode,
10
- :url,
11
- :events,
12
- :created_at,
13
- :updated_at
5
+ :secret_key,
6
+ :status,
7
+ :description,
8
+ :livemode,
9
+ :url,
10
+ :events,
11
+ :created_at,
12
+ :updated_at
14
13
 
15
14
  def initialize(api_resource)
16
15
  @id = api_resource.data["id"]
17
- @resource = api_resource.data["resource"]
18
16
  @secret_key = api_resource.data["secret_key"]
19
17
  @status = api_resource.data["status"]
20
18
  @description = api_resource.data["description"]
data/lib/http_client.rb CHANGED
@@ -5,7 +5,7 @@ module Payrex
5
5
  @base_url = base_url
6
6
  end
7
7
 
8
- def request(method:, params: {}, path:)
8
+ def request(method:, path:, params: {})
9
9
  uri = URI("#{@base_url}/#{path}")
10
10
 
11
11
  request = build_request(method: method, params: params, uri: uri)
@@ -21,12 +21,15 @@ module Payrex
21
21
 
22
22
  private
23
23
 
24
- def build_request(method:, params: {}, uri:)
24
+ def build_request(method:, uri:, params: {})
25
25
  request_class = Net::HTTP.const_get(method.capitalize)
26
26
  request = request_class.new(uri)
27
27
 
28
- set_request_headers(request)
29
- set_request_body(request, params) if %i[post put].include?(method)
28
+ request = set_request_headers(request)
29
+
30
+ if %i[post put].include?(method)
31
+ request = set_request_body(request, params)
32
+ end
30
33
 
31
34
  request
32
35
  end
@@ -52,11 +55,15 @@ module Payrex
52
55
 
53
56
  def set_request_headers(request)
54
57
  request.basic_auth(@api_key, "")
55
- request["Content-Type"] = "application/json"
58
+ request.content_type = "application/x-www-form-urlencoded"
59
+
60
+ request
56
61
  end
57
62
 
58
63
  def set_request_body(request, params)
59
- request.body = params.to_json
64
+ request.body = ::Payrex::Parameter.encode(params).gsub(/%5B[\d+]%5D/, "%5B%5D")
65
+
66
+ request
60
67
  end
61
68
 
62
69
  def failed?(response)
data/lib/payrex-ruby.rb CHANGED
@@ -5,12 +5,12 @@ require "openssl"
5
5
  require_relative "api_resource"
6
6
  require_relative "client"
7
7
  require_relative "config"
8
+ require_relative "helpers/parameter"
8
9
  require_relative "http_client"
9
10
  require_relative "payrex_error"
10
11
  require_relative "entities/checkout_session"
11
12
  require_relative "entities/event"
12
13
  require_relative "entities/listing"
13
- require_relative "entities/merchant"
14
14
  require_relative "entities/payment_intent"
15
15
  require_relative "entities/payment_method"
16
16
  require_relative "entities/refund"
@@ -22,12 +22,11 @@ require_relative "errors/resource_not_found_error"
22
22
  require_relative "errors/signature_invalid_error"
23
23
  require_relative "errors/value_unexpected_error"
24
24
  require_relative "services/base_service"
25
- require_relative "services/checkout_session_service"
26
- require_relative "services/merchant_service"
27
- require_relative "services/payment_intent_service"
28
- require_relative "services/payment_method_service"
29
- require_relative "services/refund_service"
30
- require_relative "services/webhook_service"
25
+ require_relative "services/checkout_sessions_service"
26
+ require_relative "services/payment_intents_service"
27
+ require_relative "services/payment_methods_service"
28
+ require_relative "services/refunds_service"
29
+ require_relative "services/webhooks_service"
31
30
  require_relative "services/service_factory"
32
31
 
33
32
  module Payrex
data/lib/payrex_error.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Payrex
2
2
  class PayrexError
3
3
  attr_reader :code,
4
- :detail,
5
- :parameter
4
+ :detail,
5
+ :parameter
6
6
 
7
7
  def initialize(error)
8
8
  @code = error["code"]
@@ -5,7 +5,7 @@ module Payrex
5
5
  @client = client
6
6
  end
7
7
 
8
- def request(is_list: false, method:, object:, path:, payload: {})
8
+ def request(method:, object:, path:, is_list: false, payload: {})
9
9
  http_client = Payrex::HttpClient.new(api_key: @client.config.api_key, base_url: @client.config.api_base_url)
10
10
 
11
11
  api_resource = http_client.request(
@@ -16,7 +16,7 @@ module Payrex
16
16
 
17
17
  if is_list
18
18
  data = api_resource.data["data"].map { |data| object.new(Payrex::ApiResource.new(data)) }
19
-
19
+
20
20
  Payrex::Entities::Listing.new(data: data, has_more: api_resource.data["has_more"])
21
21
  else
22
22
  object.new(api_resource)
@@ -1,6 +1,6 @@
1
1
  module Payrex
2
2
  module Services
3
- class CheckoutSessionService < BaseService
3
+ class CheckoutSessionsService < BaseService
4
4
  PATH = "checkout_sessions"
5
5
 
6
6
  def create(payload)
@@ -1,6 +1,6 @@
1
1
  module Payrex
2
2
  module Services
3
- class PaymentIntentService < BaseService
3
+ class PaymentIntentsService < BaseService
4
4
  PATH = "payment_intents"
5
5
 
6
6
  def capture(id, payload)
@@ -1,6 +1,6 @@
1
1
  module Payrex
2
2
  module Services
3
- class PaymentMethodService < BaseService
3
+ class PaymentMethodsService < BaseService
4
4
  PATH = "payment_methods"
5
5
 
6
6
  def create(payload)
@@ -1,6 +1,6 @@
1
1
  module Payrex
2
2
  module Services
3
- class RefundService < BaseService
3
+ class RefundsService < BaseService
4
4
  PATH = "refunds"
5
5
 
6
6
  def create(payload)
@@ -1,6 +1,6 @@
1
1
  module Payrex
2
2
  module Services
3
- class WebhookService < BaseService
3
+ class WebhooksService < BaseService
4
4
  PATH = "webhooks"
5
5
 
6
6
  def parse_event(payload:, signature_header:, webhook_secret_key:)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: payrex-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - PayRex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-23 00:00:00.000000000 Z
11
+ date: 2024-07-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: PayRex Ruby Library
14
14
  email: support@payrexhq.com
@@ -37,13 +37,12 @@ files:
37
37
  - lib/payrex-ruby.rb
38
38
  - lib/payrex_error.rb
39
39
  - lib/services/base_service.rb
40
- - lib/services/checkout_session_service.rb
41
- - lib/services/merchant_service.rb
42
- - lib/services/payment_intent_service.rb
43
- - lib/services/payment_method_service.rb
44
- - lib/services/refund_service.rb
40
+ - lib/services/checkout_sessions_service.rb
41
+ - lib/services/payment_intents_service.rb
42
+ - lib/services/payment_methods_service.rb
43
+ - lib/services/refunds_service.rb
45
44
  - lib/services/service_factory.rb
46
- - lib/services/webhook_service.rb
45
+ - lib/services/webhooks_service.rb
47
46
  homepage: https://www.payrexhq.com/
48
47
  licenses:
49
48
  - MIT
@@ -1,16 +0,0 @@
1
- module Payrex
2
- module Services
3
- class MerchantService < BaseService
4
- PATH = "merchants"
5
-
6
- def create(payload)
7
- request(
8
- method: :post,
9
- object: Payrex::Entities::Merchant,
10
- path: PATH,
11
- payload: payload
12
- )
13
- end
14
- end
15
- end
16
- end