yoomoney 0.4.0 → 0.4.1

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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/yoomoney/internal/util.rb +31 -0
  5. data/lib/yoomoney/models/deal_retrieve_params.rb +7 -1
  6. data/lib/yoomoney/models/invoice_retrieve_params.rb +7 -1
  7. data/lib/yoomoney/models/payment_cancel_params.rb +7 -1
  8. data/lib/yoomoney/models/payment_capture_params.rb +8 -1
  9. data/lib/yoomoney/models/payment_method_retrieve_params.rb +7 -1
  10. data/lib/yoomoney/models/payment_retrieve_params.rb +7 -1
  11. data/lib/yoomoney/models/payout_retrieve_params.rb +7 -1
  12. data/lib/yoomoney/models/personal_data_create_params.rb +70 -46
  13. data/lib/yoomoney/models/personal_data_retrieve_params.rb +7 -1
  14. data/lib/yoomoney/models/receipt_retrieve_params.rb +7 -1
  15. data/lib/yoomoney/models/refund_retrieve_params.rb +7 -1
  16. data/lib/yoomoney/models/webhook_delete_params.rb +7 -1
  17. data/lib/yoomoney/resources/deals.rb +2 -1
  18. data/lib/yoomoney/resources/me.rb +2 -1
  19. data/lib/yoomoney/resources/payments.rb +2 -1
  20. data/lib/yoomoney/resources/payouts.rb +4 -2
  21. data/lib/yoomoney/resources/personal_data.rb +4 -16
  22. data/lib/yoomoney/resources/receipts.rb +2 -1
  23. data/lib/yoomoney/resources/refunds.rb +2 -1
  24. data/lib/yoomoney/version.rb +1 -1
  25. data/lib/yoomoney.rb +1 -1
  26. data/rbi/yoomoney/internal/util.rbi +20 -0
  27. data/rbi/yoomoney/models/deal_retrieve_params.rbi +13 -5
  28. data/rbi/yoomoney/models/invoice_retrieve_params.rbi +13 -5
  29. data/rbi/yoomoney/models/payment_cancel_params.rbi +10 -2
  30. data/rbi/yoomoney/models/payment_capture_params.rbi +6 -0
  31. data/rbi/yoomoney/models/payment_method_retrieve_params.rbi +16 -5
  32. data/rbi/yoomoney/models/payment_retrieve_params.rbi +13 -5
  33. data/rbi/yoomoney/models/payout_retrieve_params.rbi +13 -5
  34. data/rbi/yoomoney/models/personal_data_create_params.rbi +140 -55
  35. data/rbi/yoomoney/models/personal_data_retrieve_params.rbi +16 -5
  36. data/rbi/yoomoney/models/receipt_retrieve_params.rbi +13 -5
  37. data/rbi/yoomoney/models/refund_retrieve_params.rbi +13 -5
  38. data/rbi/yoomoney/models/webhook_delete_params.rbi +13 -5
  39. data/rbi/yoomoney/resources/personal_data.rbi +7 -19
  40. data/sig/yoomoney/internal/util.rbs +10 -0
  41. data/sig/yoomoney/models/deal_retrieve_params.rbs +11 -3
  42. data/sig/yoomoney/models/invoice_retrieve_params.rbs +11 -3
  43. data/sig/yoomoney/models/payment_cancel_params.rbs +6 -1
  44. data/sig/yoomoney/models/payment_capture_params.rbs +5 -0
  45. data/sig/yoomoney/models/payment_method_retrieve_params.rbs +12 -3
  46. data/sig/yoomoney/models/payment_retrieve_params.rbs +11 -3
  47. data/sig/yoomoney/models/payout_retrieve_params.rbs +11 -3
  48. data/sig/yoomoney/models/personal_data_create_params.rbs +73 -29
  49. data/sig/yoomoney/models/personal_data_retrieve_params.rbs +12 -3
  50. data/sig/yoomoney/models/receipt_retrieve_params.rbs +11 -3
  51. data/sig/yoomoney/models/refund_retrieve_params.rbs +11 -3
  52. data/sig/yoomoney/models/webhook_delete_params.rbs +11 -3
  53. data/sig/yoomoney/resources/personal_data.rbs +1 -5
  54. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fc7cc115fd073113e5c5ddd6f74a1dc490e0eb17283cdc0ead7e84fff2c8c28
4
- data.tar.gz: 758d082193bdc8e9927eab64242366e627b9f6ab180041d7805ee0ef0ab9ce5b
3
+ metadata.gz: 5a9dd0aa982a39414ab87a649a2c640d6ded44640cb26a816d9c2a007611a886
4
+ data.tar.gz: 20abe4c00231561b2d7e5dc856c36865198f79e2c561c6623b6be5f4a1dcc0f0
5
5
  SHA512:
6
- metadata.gz: 5499ebb0a382b81f5e8ac81aa2c4b926e52745dc9f162418f00939eefb0ca71db17dfcf8d7277f22dec6145224eafc61294b011e7f2443d17290124672ec5731
7
- data.tar.gz: 43206f99994d0cb058341d71613ba1a935cd62980a5d9004cf0240ae42d065d8df0de61a7cc87e89058748d66b5c2d97ae5b80e2e04b714d4c6ecac2abc8422c
6
+ metadata.gz: c7948b62da23b4d1ef45daec6d7fd89b38cc685dbf1b677d02f48bf6f3d25fd8510782bfa09953e645de0c9d952cb1e45365ab70321d01aac014428260678814
7
+ data.tar.gz: a7d33fa092c2651fa73100150415450e0f00567e7998ca4b74f8cfee7b924c85405f679cd9309a590db10414eb19569236a25f7a3b73496c80e6bbabae9b1226
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.1 (2026-03-07)
4
+
5
+ Full Changelog: [v0.4.0...v0.4.1](https://github.com/Hexlet/yoomoney-ruby/compare/v0.4.0...v0.4.1)
6
+
7
+ ### Bug Fixes
8
+
9
+ * properly mock time in ruby ci tests ([0b0f2b9](https://github.com/Hexlet/yoomoney-ruby/commit/0b0f2b9b46b018511f77974f9c07bf16c41b9de8))
10
+
11
+
12
+ ### Chores
13
+
14
+ * **ci:** add build step ([97e903b](https://github.com/Hexlet/yoomoney-ruby/commit/97e903b2e36f772efddd46fe27068e52c83bbd9c))
15
+ * **ci:** skip uploading artifacts on stainless-internal branches ([769989f](https://github.com/Hexlet/yoomoney-ruby/commit/769989fb624918ba20854868cb63f4f5205a0e4a))
16
+ * **internal:** codegen related update ([9f0b901](https://github.com/Hexlet/yoomoney-ruby/commit/9f0b9017a1935611d16145bee578e2bd020b2e3e))
17
+ * **internal:** codegen related update ([a3a34e9](https://github.com/Hexlet/yoomoney-ruby/commit/a3a34e92ccdbaf9b73180348eb9e6d748027aaf5))
18
+ * **internal:** remove mock server code ([ff71548](https://github.com/Hexlet/yoomoney-ruby/commit/ff7154864d2ab53d55c4eeacb28120965dca14a1))
19
+ * update mock server docs ([98bf708](https://github.com/Hexlet/yoomoney-ruby/commit/98bf7084f1c04c1d0c816d96584a4074e9187024))
20
+
3
21
  ## 0.4.0 (2026-02-19)
4
22
 
5
23
  Full Changelog: [v0.3.0...v0.4.0](https://github.com/Hexlet/yoomoney-ruby/compare/v0.3.0...v0.4.0)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "yoomoney", "~> 0.4.0"
18
+ gem "yoomoney", "~> 0.4.1"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -490,6 +490,37 @@ module Yoomoney
490
490
  JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
491
491
 
492
492
  class << self
493
+ # @api private
494
+ #
495
+ # @param query [Hash{Symbol=>Object}]
496
+ #
497
+ # @return [Hash{Symbol=>Object}]
498
+ def encode_query_params(query)
499
+ out = {}
500
+ query.each { write_query_param_element!(out, _1, _2) }
501
+ out
502
+ end
503
+
504
+ # @api private
505
+ #
506
+ # @param collection [Hash{Symbol=>Object}]
507
+ # @param key [String]
508
+ # @param element [Object]
509
+ #
510
+ # @return [nil]
511
+ private def write_query_param_element!(collection, key, element)
512
+ case element
513
+ in Hash
514
+ element.each do |name, value|
515
+ write_query_param_element!(collection, "#{key}[#{name}]", value)
516
+ end
517
+ in Array
518
+ collection[key] = element.map(&:to_s).join(",")
519
+ else
520
+ collection[key] = element.to_s
521
+ end
522
+ end
523
+
493
524
  # @api private
494
525
  #
495
526
  # @param y [Enumerator::Yielder]
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute deal_id
11
+ #
12
+ # @return [String]
13
+ required :deal_id, String
14
+
15
+ # @!method initialize(deal_id:, request_options: {})
16
+ # @param deal_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute invoice_id
11
+ #
12
+ # @return [String]
13
+ required :invoice_id, String
14
+
15
+ # @!method initialize(invoice_id:, request_options: {})
16
+ # @param invoice_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,12 +7,18 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
+ # @!attribute payment_id
11
+ #
12
+ # @return [String]
13
+ required :payment_id, String
14
+
10
15
  # @!attribute idempotence_key
11
16
  #
12
17
  # @return [String]
13
18
  required :idempotence_key, String
14
19
 
15
- # @!method initialize(idempotence_key:, request_options: {})
20
+ # @!method initialize(payment_id:, idempotence_key:, request_options: {})
21
+ # @param payment_id [String]
16
22
  # @param idempotence_key [String]
17
23
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
18
24
  end
@@ -7,6 +7,11 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
+ # @!attribute payment_id
11
+ #
12
+ # @return [String]
13
+ required :payment_id, String
14
+
10
15
  # @!attribute idempotence_key
11
16
  #
12
17
  # @return [String]
@@ -42,7 +47,9 @@ module Yoomoney
42
47
  # @return [Array<Yoomoney::Models::TransferData>, nil]
43
48
  optional :transfers, -> { Yoomoney::Internal::Type::ArrayOf[Yoomoney::TransferData] }
44
49
 
45
- # @!method initialize(idempotence_key:, airline: nil, amount: nil, deal: nil, receipt: nil, transfers: nil, request_options: {})
50
+ # @!method initialize(payment_id:, idempotence_key:, airline: nil, amount: nil, deal: nil, receipt: nil, transfers: nil, request_options: {})
51
+ # @param payment_id [String]
52
+ #
46
53
  # @param idempotence_key [String]
47
54
  #
48
55
  # @param airline [Yoomoney::Models::Airline] Данные для продажи авиабилетов.
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute payment_method_id
11
+ #
12
+ # @return [String]
13
+ required :payment_method_id, String
14
+
15
+ # @!method initialize(payment_method_id:, request_options: {})
16
+ # @param payment_method_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute payment_id
11
+ #
12
+ # @return [String]
13
+ required :payment_id, String
14
+
15
+ # @!method initialize(payment_id:, request_options: {})
16
+ # @param payment_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute payout_id
11
+ #
12
+ # @return [String]
13
+ required :payout_id, String
14
+
15
+ # @!method initialize(payout_id:, request_options: {})
16
+ # @param payout_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,61 +7,85 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!attribute first_name
11
- # Имя.
10
+ # @!attribute body
12
11
  #
13
- # @return [String]
14
- required :first_name, String
15
-
16
- # @!attribute last_name
17
- # Фамилия.
18
- #
19
- # @return [String]
20
- required :last_name, String
21
-
22
- # @!attribute type
23
- # Тип персональных данных.
24
- #
25
- # @return [Symbol, Yoomoney::Models::PersonalDataType]
26
- required :type, enum: -> { Yoomoney::PersonalDataType }
12
+ # @return [Yoomoney::Models::PersonalDataCreateParams::Body::SbpPayoutRecipientPersonalDataRequest, Yoomoney::Models::PersonalDataCreateParams::Body::PayoutStatementRecipientPersonalDataRequest]
13
+ required :body, union: -> { Yoomoney::PersonalDataCreateParams::Body }
27
14
 
28
15
  # @!attribute idempotence_key
29
16
  #
30
17
  # @return [String]
31
18
  required :idempotence_key, String
32
19
 
33
- # @!attribute metadata
34
- # Любые дополнительные данные, которые нужны вам для работы (например, номер
35
- # заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от
36
- # ЮKassa. Ограничения: максимум 16 ключей, имя ключа не больше 32 символов,
37
- # значение ключа не больше 512 символов, тип данных — строка в формате UTF-8.
38
- #
39
- # @return [Hash{Symbol=>String}, nil]
40
- optional :metadata, Yoomoney::Internal::Type::HashOf[String]
41
-
42
- # @!attribute middle_name
43
- # Отчество.
44
- #
45
- # @return [String, nil]
46
- optional :middle_name, String
47
-
48
- # @!method initialize(first_name:, last_name:, type:, idempotence_key:, metadata: nil, middle_name: nil, request_options: {})
49
- # Some parameter documentations has been truncated, see
50
- # {Yoomoney::Models::PersonalDataCreateParams} for more details.
51
- #
52
- # @param first_name [String] Имя.
53
- #
54
- # @param last_name [String] Фамилия.
55
- #
56
- # @param type [Symbol, Yoomoney::Models::PersonalDataType] Тип персональных данных.
57
- #
20
+ # @!method initialize(body:, idempotence_key:, request_options: {})
21
+ # @param body [Yoomoney::Models::PersonalDataCreateParams::Body::SbpPayoutRecipientPersonalDataRequest, Yoomoney::Models::PersonalDataCreateParams::Body::PayoutStatementRecipientPersonalDataRequest]
58
22
  # @param idempotence_key [String]
59
- #
60
- # @param metadata [Hash{Symbol=>String}] Любые дополнительные данные, которые нужны вам для работы (например, номер заказ
61
- #
62
- # @param middle_name [String] Отчество.
63
- #
64
23
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
24
+
25
+ module Body
26
+ extend Yoomoney::Internal::Type::Union
27
+
28
+ variant -> { Yoomoney::PersonalDataCreateParams::Body::SbpPayoutRecipientPersonalDataRequest }
29
+
30
+ variant -> { Yoomoney::PersonalDataCreateParams::Body::PayoutStatementRecipientPersonalDataRequest }
31
+
32
+ class SbpPayoutRecipientPersonalDataRequest < Yoomoney::Models::PersonalDataRequest
33
+ # @!attribute first_name
34
+ # Имя.
35
+ #
36
+ # @return [String]
37
+ required :first_name, String
38
+
39
+ # @!attribute last_name
40
+ # Фамилия.
41
+ #
42
+ # @return [String]
43
+ required :last_name, String
44
+
45
+ # @!attribute middle_name
46
+ # Отчество.
47
+ #
48
+ # @return [String, nil]
49
+ optional :middle_name, String
50
+
51
+ # @!method initialize(first_name:, last_name:, middle_name: nil)
52
+ # @param first_name [String] Имя.
53
+ #
54
+ # @param last_name [String] Фамилия.
55
+ #
56
+ # @param middle_name [String] Отчество.
57
+ end
58
+
59
+ class PayoutStatementRecipientPersonalDataRequest < Yoomoney::Models::PersonalDataRequest
60
+ # @!attribute first_name
61
+ # Имя.
62
+ #
63
+ # @return [String]
64
+ required :first_name, String
65
+
66
+ # @!attribute last_name
67
+ # Фамилия.
68
+ #
69
+ # @return [String]
70
+ required :last_name, String
71
+
72
+ # @!attribute middle_name
73
+ # Отчество.
74
+ #
75
+ # @return [String, nil]
76
+ optional :middle_name, String
77
+
78
+ # @!method initialize(first_name:, last_name:, middle_name: nil)
79
+ # @param first_name [String] Имя.
80
+ #
81
+ # @param last_name [String] Фамилия.
82
+ #
83
+ # @param middle_name [String] Отчество.
84
+ end
85
+
86
+ # @!method self.variants
87
+ # @return [Array(Yoomoney::Models::PersonalDataCreateParams::Body::SbpPayoutRecipientPersonalDataRequest, Yoomoney::Models::PersonalDataCreateParams::Body::PayoutStatementRecipientPersonalDataRequest)]
88
+ end
65
89
  end
66
90
  end
67
91
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute personal_data_id
11
+ #
12
+ # @return [String]
13
+ required :personal_data_id, String
14
+
15
+ # @!method initialize(personal_data_id:, request_options: {})
16
+ # @param personal_data_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute receipt_id
11
+ #
12
+ # @return [String]
13
+ required :receipt_id, String
14
+
15
+ # @!method initialize(receipt_id:, request_options: {})
16
+ # @param receipt_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute refund_id
11
+ #
12
+ # @return [String]
13
+ required :refund_id, String
14
+
15
+ # @!method initialize(refund_id:, request_options: {})
16
+ # @param refund_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,13 @@ module Yoomoney
7
7
  extend Yoomoney::Internal::Type::RequestParameters::Converter
8
8
  include Yoomoney::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute webhook_id
11
+ #
12
+ # @return [String]
13
+ required :webhook_id, String
14
+
15
+ # @!method initialize(webhook_id:, request_options: {})
16
+ # @param webhook_id [String]
11
17
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -74,10 +74,11 @@ module Yoomoney
74
74
  # @see Yoomoney::Models::DealListParams
75
75
  def list(params = {})
76
76
  parsed, options = Yoomoney::DealListParams.dump_request(params)
77
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
77
78
  @client.request(
78
79
  method: :get,
79
80
  path: "deals",
80
- query: parsed,
81
+ query: query,
81
82
  model: Yoomoney::Models::DealListResponse,
82
83
  options: options
83
84
  )
@@ -15,10 +15,11 @@ module Yoomoney
15
15
  # @see Yoomoney::Models::MeRetrieveParams
16
16
  def retrieve(params = {})
17
17
  parsed, options = Yoomoney::MeRetrieveParams.dump_request(params)
18
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
18
19
  @client.request(
19
20
  method: :get,
20
21
  path: "me",
21
- query: parsed,
22
+ query: query,
22
23
  model: Yoomoney::Models::MeRetrieveResponse,
23
24
  options: options
24
25
  )
@@ -104,10 +104,11 @@ module Yoomoney
104
104
  # @see Yoomoney::Models::PaymentListParams
105
105
  def list(params = {})
106
106
  parsed, options = Yoomoney::PaymentListParams.dump_request(params)
107
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
107
108
  @client.request(
108
109
  method: :get,
109
110
  path: "payments",
110
- query: parsed,
111
+ query: query,
111
112
  model: Yoomoney::Models::PaymentListResponse,
112
113
  options: options
113
114
  )
@@ -81,10 +81,11 @@ module Yoomoney
81
81
  # @see Yoomoney::Models::PayoutListParams
82
82
  def list(params = {})
83
83
  parsed, options = Yoomoney::PayoutListParams.dump_request(params)
84
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
84
85
  @client.request(
85
86
  method: :get,
86
87
  path: "payouts",
87
- query: parsed,
88
+ query: query,
88
89
  model: Yoomoney::PayoutsList,
89
90
  options: options
90
91
  )
@@ -104,10 +105,11 @@ module Yoomoney
104
105
  # @see Yoomoney::Models::PayoutSearchParams
105
106
  def search(params = {})
106
107
  parsed, options = Yoomoney::PayoutSearchParams.dump_request(params)
108
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
107
109
  @client.request(
108
110
  method: :get,
109
111
  path: "payouts/search",
110
- query: parsed,
112
+ query: query,
111
113
  model: Yoomoney::PayoutsList,
112
114
  options: options
113
115
  )
@@ -3,25 +3,14 @@
3
3
  module Yoomoney
4
4
  module Resources
5
5
  class PersonalData
6
- # Some parameter documentations has been truncated, see
7
- # {Yoomoney::Models::PersonalDataCreateParams} for more details.
8
- #
9
6
  # Создание персональных данных
10
7
  #
11
- # @overload create(first_name:, last_name:, type:, idempotence_key:, metadata: nil, middle_name: nil, request_options: {})
12
- #
13
- # @param first_name [String] Body param: Имя.
14
- #
15
- # @param last_name [String] Body param: Фамилия.
8
+ # @overload create(body:, idempotence_key:, request_options: {})
16
9
  #
17
- # @param type [Symbol, Yoomoney::Models::PersonalDataType] Body param: Тип персональных данных.
10
+ # @param body [Yoomoney::Models::PersonalDataCreateParams::Body::SbpPayoutRecipientPersonalDataRequest, Yoomoney::Models::PersonalDataCreateParams::Body::PayoutStatementRecipientPersonalDataRequest] Body param
18
11
  #
19
12
  # @param idempotence_key [String] Header param
20
13
  #
21
- # @param metadata [Hash{Symbol=>String}] Body param: Любые дополнительные данные, которые нужны вам для работы (например,
22
- #
23
- # @param middle_name [String] Body param: Отчество.
24
- #
25
14
  # @param request_options [Yoomoney::RequestOptions, Hash{Symbol=>Object}, nil]
26
15
  #
27
16
  # @return [Yoomoney::Models::PersonalDataAPI]
@@ -29,12 +18,11 @@ module Yoomoney
29
18
  # @see Yoomoney::Models::PersonalDataCreateParams
30
19
  def create(params)
31
20
  parsed, options = Yoomoney::PersonalDataCreateParams.dump_request(params)
32
- header_params = {idempotence_key: "idempotence-key"}
33
21
  @client.request(
34
22
  method: :post,
35
23
  path: "personal_data",
36
- headers: parsed.slice(*header_params.keys).transform_keys(header_params),
37
- body: parsed.except(*header_params.keys),
24
+ headers: parsed.except(:body).transform_keys(idempotence_key: "idempotence-key"),
25
+ body: parsed[:body],
38
26
  model: Yoomoney::PersonalDataAPI,
39
27
  options: options
40
28
  )
@@ -91,10 +91,11 @@ module Yoomoney
91
91
  # @see Yoomoney::Models::ReceiptListParams
92
92
  def list(params = {})
93
93
  parsed, options = Yoomoney::ReceiptListParams.dump_request(params)
94
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
94
95
  @client.request(
95
96
  method: :get,
96
97
  path: "receipts",
97
- query: parsed,
98
+ query: query,
98
99
  model: Yoomoney::Models::ReceiptListResponse,
99
100
  options: options
100
101
  )
@@ -81,10 +81,11 @@ module Yoomoney
81
81
  # @see Yoomoney::Models::RefundListParams
82
82
  def list(params = {})
83
83
  parsed, options = Yoomoney::RefundListParams.dump_request(params)
84
+ query = Yoomoney::Internal::Util.encode_query_params(parsed)
84
85
  @client.request(
85
86
  method: :get,
86
87
  path: "refunds",
87
- query: parsed,
88
+ query: query,
88
89
  model: Yoomoney::Models::RefundListResponse,
89
90
  options: options
90
91
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yoomoney
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.1"
5
5
  end
data/lib/yoomoney.rb CHANGED
@@ -63,6 +63,7 @@ require_relative "yoomoney/models/payment_method_data"
63
63
  require_relative "yoomoney/models/confirmation_data"
64
64
  require_relative "yoomoney/models/payout_destination"
65
65
  require_relative "yoomoney/models/payout_destination_data"
66
+ require_relative "yoomoney/models/personal_data_request"
66
67
  require_relative "yoomoney/models/receipt_item_supplier"
67
68
  require_relative "yoomoney/models/refund_method"
68
69
  require_relative "yoomoney/models/airline"
@@ -118,7 +119,6 @@ require_relative "yoomoney/models/payouts_list"
118
119
  require_relative "yoomoney/models/payout_status"
119
120
  require_relative "yoomoney/models/personal_data"
120
121
  require_relative "yoomoney/models/personal_data_create_params"
121
- require_relative "yoomoney/models/personal_data_request"
122
122
  require_relative "yoomoney/models/personal_data_retrieve_params"
123
123
  require_relative "yoomoney/models/personal_data_type"
124
124
  require_relative "yoomoney/models/receipt"
@@ -301,6 +301,26 @@ module Yoomoney
301
301
  T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
302
302
 
303
303
  class << self
304
+ # @api private
305
+ sig do
306
+ params(query: Yoomoney::Internal::AnyHash).returns(
307
+ Yoomoney::Internal::AnyHash
308
+ )
309
+ end
310
+ def encode_query_params(query)
311
+ end
312
+
313
+ # @api private
314
+ sig do
315
+ params(
316
+ collection: Yoomoney::Internal::AnyHash,
317
+ key: String,
318
+ element: T.anything
319
+ ).void
320
+ end
321
+ private def write_query_param_element!(collection, key, element)
322
+ end
323
+
304
324
  # @api private
305
325
  sig do
306
326
  params(
@@ -11,15 +11,23 @@ module Yoomoney
11
11
  T.any(Yoomoney::DealRetrieveParams, Yoomoney::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :deal_id
16
+
14
17
  sig do
15
- params(request_options: Yoomoney::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
18
+ params(
19
+ deal_id: String,
20
+ request_options: Yoomoney::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
18
22
  end
19
- def self.new(request_options: {})
23
+ def self.new(deal_id:, request_options: {})
20
24
  end
21
25
 
22
- sig { override.returns({ request_options: Yoomoney::RequestOptions }) }
26
+ sig do
27
+ override.returns(
28
+ { deal_id: String, request_options: Yoomoney::RequestOptions }
29
+ )
30
+ end
23
31
  def to_hash
24
32
  end
25
33
  end
@@ -11,15 +11,23 @@ module Yoomoney
11
11
  T.any(Yoomoney::InvoiceRetrieveParams, Yoomoney::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :invoice_id
16
+
14
17
  sig do
15
- params(request_options: Yoomoney::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
18
+ params(
19
+ invoice_id: String,
20
+ request_options: Yoomoney::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
18
22
  end
19
- def self.new(request_options: {})
23
+ def self.new(invoice_id:, request_options: {})
20
24
  end
21
25
 
22
- sig { override.returns({ request_options: Yoomoney::RequestOptions }) }
26
+ sig do
27
+ override.returns(
28
+ { invoice_id: String, request_options: Yoomoney::RequestOptions }
29
+ )
30
+ end
23
31
  def to_hash
24
32
  end
25
33
  end