payrex-ruby 1.3.0 → 1.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95c811fd01761b7cae87de907a9a74c662c939cba452b956f498ba7ef9138bd0
4
- data.tar.gz: 4577a76caff349123edd2ec3bd41361575e1007cd9c8c15789c942cbaadd6e53
3
+ metadata.gz: f1ed7bd8fc0cd112c460e5928c7cc061799d2a0056a0e6bef897f0340b81cd6f
4
+ data.tar.gz: 7362227a7fe13a42044b7e45bfc8f613757f5d99979c86040077426a4c43105d
5
5
  SHA512:
6
- metadata.gz: c58fdc18449e24599b0eed109343b8c5cfa787a72e65c6edd59106e8eb3717422302e743c82cc94e2795675812681b0533788a73987b73b081ada789e63b19b7
7
- data.tar.gz: 2f742dfee71a7901ee22e5b44f61c070990da92b2a18326b62d07e69c68dbd3b990002eb4bca274bb77f3326f4d56df2dc35980d0625cf9a25da06781c91187c
6
+ metadata.gz: 385c5c8669fc16f21c383b67f8cadfaf044f599f6f7f6e1732e959ec0d52761de6aee4d09a8101bcfad24e8fc1f481dbefc6ef96e1a3564c54443070dd19a3ae
7
+ data.tar.gz: 4edee9aac02d320d55c80fe25a83ad32128afe314c53da24e126a8763aa916558820f1da823d9929373901d6fa8f53f7924128fda95ddb7400856ac36b529d1a
@@ -0,0 +1,43 @@
1
+ module Payrex
2
+ module Entities
3
+ class Payment
4
+ attr_reader :id,
5
+ :amount,
6
+ :amount_refunded,
7
+ :billing,
8
+ :currency,
9
+ :description,
10
+ :fee,
11
+ :livemode,
12
+ :metadata,
13
+ :net_amount,
14
+ :payment_intent_id,
15
+ :status,
16
+ :customer,
17
+ :payment_method,
18
+ :refunded,
19
+ :created_at,
20
+ :updated_at
21
+
22
+ def initialize(api_resource)
23
+ @id = api_resource.data["id"]
24
+ @amount = api_resource.data["amount"]
25
+ @amount_refunded = api_resource.data["amount_refunded"]
26
+ @billing = api_resource.data["billing"]
27
+ @currency = api_resource.data["currency"]
28
+ @description = api_resource.data["description"]
29
+ @fee = api_resource.data["fee"]
30
+ @livemode = api_resource.data["livemode"]
31
+ @metadata = api_resource.data["metadata"]
32
+ @net_amount = api_resource.data["net_amount"]
33
+ @payment_intent_id = api_resource.data["payment_intent_id"]
34
+ @status = api_resource.data["status"]
35
+ @customer = api_resource.data["customer"]
36
+ @payment_method = api_resource.data["payment_method"]
37
+ @refunded = api_resource.data["refunded"]
38
+ @created_at = api_resource.data["created_at"]
39
+ @updated_at = api_resource.data["updated_at"]
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,25 @@
1
+ module Payrex
2
+ module Entities
3
+ class Payout
4
+ attr_reader :id,
5
+ :amount,
6
+ :destination,
7
+ :livemode,
8
+ :net_amount,
9
+ :status,
10
+ :created_at,
11
+ :updated_at
12
+
13
+ def initialize(api_resource)
14
+ @id = api_resource.data["id"]
15
+ @amount = api_resource.data["amount"]
16
+ @destination = api_resource.data["destination"]
17
+ @livemode = api_resource.data["livemode"]
18
+ @net_amount = api_resource.data["net_amount"]
19
+ @status = api_resource.data["status"]
20
+ @created_at = api_resource.data["created_at"]
21
+ @updated_at = api_resource.data["updated_at"]
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ module Payrex
2
+ module Entities
3
+ class PayoutTransaction
4
+ attr_reader :id,
5
+ :amount,
6
+ :payout_id,
7
+ :transaction_type,
8
+ :transaction_id,
9
+ :created_at,
10
+ :updated_at
11
+
12
+ def initialize(api_resource)
13
+ @id = api_resource.data["id"]
14
+ @amount = api_resource.data["amount"]
15
+ @payout_id = api_resource.data["payout_id"]
16
+ @transaction_type = api_resource.data["transaction_type"]
17
+ @transaction_id = api_resource.data["transaction_id"]
18
+ @created_at = api_resource.data["created_at"]
19
+ @updated_at = api_resource.data["updated_at"]
20
+ end
21
+ end
22
+ end
23
+ end
data/lib/http_client.rb CHANGED
@@ -8,7 +8,11 @@ module Payrex
8
8
  def request(method:, path:, params: {})
9
9
  uri = URI("#{@base_url}/#{path}")
10
10
 
11
- request = build_request(method: method, params: params, uri: uri)
11
+ request = build_request(
12
+ method: method,
13
+ params: params,
14
+ uri: uri
15
+ )
12
16
 
13
17
  response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
14
18
 
@@ -23,6 +27,11 @@ module Payrex
23
27
 
24
28
  def build_request(method:, uri:, params: {})
25
29
  request_class = Net::HTTP.const_get(method.capitalize)
30
+
31
+ if %i[get delete].include?(method)
32
+ uri = set_query_params(uri, params)
33
+ end
34
+
26
35
  request = request_class.new(uri)
27
36
 
28
37
  request = set_request_headers(request)
@@ -66,6 +75,14 @@ module Payrex
66
75
  request
67
76
  end
68
77
 
78
+ def set_query_params(uri, params)
79
+ return uri if params.nil? || params.empty?
80
+
81
+ uri.query = URI.encode_www_form(params)
82
+
83
+ uri
84
+ end
85
+
69
86
  def failed?(response)
70
87
  response.code < "200" || response.code >= "400"
71
88
  end
data/lib/payrex-ruby.rb CHANGED
@@ -17,6 +17,9 @@ require_relative "entities/billing_statement"
17
17
  require_relative "entities/billing_statement_line_item"
18
18
  require_relative "entities/listing"
19
19
  require_relative "entities/payment_intent"
20
+ require_relative "entities/payment"
21
+ require_relative "entities/payout"
22
+ require_relative "entities/payout_transaction"
20
23
  require_relative "entities/refund"
21
24
  require_relative "entities/webhook"
22
25
  require_relative "errors/base_error"
@@ -32,6 +35,8 @@ require_relative "services/customers_service"
32
35
  require_relative "services/billing_statements_service"
33
36
  require_relative "services/billing_statement_line_items_service"
34
37
  require_relative "services/payment_intents_service"
38
+ require_relative "services/payments_service"
39
+ require_relative "services/payouts_service"
35
40
  require_relative "services/refunds_service"
36
41
  require_relative "services/webhooks_service"
37
42
  require_relative "services/service_factory"
@@ -6,7 +6,10 @@ module Payrex
6
6
  end
7
7
 
8
8
  def request(method:, object:, path:, is_list: false, payload: {})
9
- http_client = Payrex::HttpClient.new(api_key: @client.config.api_key, base_url: @client.config.api_base_url)
9
+ http_client = Payrex::HttpClient.new(
10
+ api_key: @client.config.api_key,
11
+ base_url: @client.config.api_base_url
12
+ )
10
13
 
11
14
  api_resource = http_client.request(
12
15
  method: method,
@@ -0,0 +1,16 @@
1
+ module Payrex
2
+ module Services
3
+ class PaymentsService < BaseService
4
+ PATH = "payments"
5
+
6
+ def retrieve(id)
7
+ request(
8
+ method: :get,
9
+ object: Payrex::Entities::Payment,
10
+ path: "#{PATH}/#{id}",
11
+ payload: {}
12
+ )
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ module Payrex
2
+ module Services
3
+ class PayoutsService < BaseService
4
+ PATH = "payouts"
5
+
6
+ def list_transactions(id, payload = {})
7
+ request(
8
+ is_list: true,
9
+ method: :get,
10
+ object: Payrex::Entities::PayoutTransaction,
11
+ path: "#{PATH}/#{id}/transactions",
12
+ payload: payload
13
+ )
14
+ end
15
+ end
16
+ end
17
+ end
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: 1.3.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - PayRex
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-23 00:00:00.000000000 Z
11
+ date: 2025-05-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: PayRex Ruby Library
14
14
  email: support@payrexhq.com
@@ -27,7 +27,10 @@ files:
27
27
  - lib/entities/deleted.rb
28
28
  - lib/entities/event.rb
29
29
  - lib/entities/listing.rb
30
+ - lib/entities/payment.rb
30
31
  - lib/entities/payment_intent.rb
32
+ - lib/entities/payout.rb
33
+ - lib/entities/payout_transaction.rb
31
34
  - lib/entities/refund.rb
32
35
  - lib/entities/webhook.rb
33
36
  - lib/errors/authentication_invalid_error.rb
@@ -47,14 +50,16 @@ files:
47
50
  - lib/services/customer_sessions_service.rb
48
51
  - lib/services/customers_service.rb
49
52
  - lib/services/payment_intents_service.rb
53
+ - lib/services/payments_service.rb
54
+ - lib/services/payouts_service.rb
50
55
  - lib/services/refunds_service.rb
51
56
  - lib/services/service_factory.rb
52
57
  - lib/services/webhooks_service.rb
53
- homepage: https://www.payrexhq.com/
58
+ homepage: https://www.payrexhq.com
54
59
  licenses:
55
60
  - MIT
56
61
  metadata: {}
57
- post_install_message:
62
+ post_install_message:
58
63
  rdoc_options: []
59
64
  require_paths:
60
65
  - lib
@@ -69,8 +74,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
74
  - !ruby/object:Gem::Version
70
75
  version: '0'
71
76
  requirements: []
72
- rubygems_version: 3.0.3.1
73
- signing_key:
77
+ rubygems_version: 3.5.9
78
+ signing_key:
74
79
  specification_version: 4
75
80
  summary: PayRex Ruby
76
81
  test_files: []