payrex-ruby 1.4.0 → 1.6.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: 583c114124170c6b8681058575394ec62e8f31cc5ddd7f92d2744879a24b1682
4
- data.tar.gz: 156d88e05175558a6822ab0baeff9f6490993c4dfb7c77f731da6c69bc7e0ce0
3
+ metadata.gz: 90efef918450a62a19f703909126086dbc6bd7e89fcb7062aeb9c98742eb058c
4
+ data.tar.gz: b6bfa138c9539435de50ef30e0442d0b894d076a929ca1e4e384904aaa7c11a3
5
5
  SHA512:
6
- metadata.gz: 3516c7aee6e669bfc9b0350dd7d24813c3f33dc632e102dbf5823368b2fa23de88e60f541c2a6da002575dc6193231e14b62c172bd28c5b64d7b26b1cb943164
7
- data.tar.gz: 2cca75e45b877e346117aa164d5a0798ac9af14edd6b7899053b527dd687c075f3ea26f4852016e26304a375d28045653183a04ca829b8ef6a9d7353e4a1d364
6
+ metadata.gz: e473ade720ec50ccd178a2617bee3a4f493fe153c4605127251c02891c2b7f43fb79e4b95368da4c9b7157035c1ed2efaf218f0cf1c031fbc39a81d2dd0ad0bf
7
+ data.tar.gz: f10fc1268affe3497a99668b155478c3454ac99bb1a3b6c983aa2ab0e374d4c5120da09fc1d765f9f4a06b3579655bffe14d114b997684a41808fdb6c3669096
@@ -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
@@ -18,6 +18,8 @@ require_relative "entities/billing_statement_line_item"
18
18
  require_relative "entities/listing"
19
19
  require_relative "entities/payment_intent"
20
20
  require_relative "entities/payment"
21
+ require_relative "entities/payout"
22
+ require_relative "entities/payout_transaction"
21
23
  require_relative "entities/refund"
22
24
  require_relative "entities/webhook"
23
25
  require_relative "errors/base_error"
@@ -34,6 +36,7 @@ require_relative "services/billing_statements_service"
34
36
  require_relative "services/billing_statement_line_items_service"
35
37
  require_relative "services/payment_intents_service"
36
38
  require_relative "services/payments_service"
39
+ require_relative "services/payouts_service"
37
40
  require_relative "services/refunds_service"
38
41
  require_relative "services/webhooks_service"
39
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,
@@ -11,6 +11,15 @@ module Payrex
11
11
  payload: {}
12
12
  )
13
13
  end
14
+
15
+ def update(id, payload)
16
+ request(
17
+ method: :put,
18
+ object: Payrex::Entities::Payment,
19
+ path: "#{PATH}/#{id}",
20
+ payload: payload
21
+ )
22
+ end
14
23
  end
15
24
  end
16
25
  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.4.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - PayRex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-15 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
@@ -29,6 +29,8 @@ files:
29
29
  - lib/entities/listing.rb
30
30
  - lib/entities/payment.rb
31
31
  - lib/entities/payment_intent.rb
32
+ - lib/entities/payout.rb
33
+ - lib/entities/payout_transaction.rb
32
34
  - lib/entities/refund.rb
33
35
  - lib/entities/webhook.rb
34
36
  - lib/errors/authentication_invalid_error.rb
@@ -49,10 +51,11 @@ files:
49
51
  - lib/services/customers_service.rb
50
52
  - lib/services/payment_intents_service.rb
51
53
  - lib/services/payments_service.rb
54
+ - lib/services/payouts_service.rb
52
55
  - lib/services/refunds_service.rb
53
56
  - lib/services/service_factory.rb
54
57
  - lib/services/webhooks_service.rb
55
- homepage: https://www.payrexhq.com/
58
+ homepage: https://www.payrexhq.com
56
59
  licenses:
57
60
  - MIT
58
61
  metadata: {}