starkbank 2.11.0 → 2.13.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: 9571bfbacd93d4716d5e3b0135d3db8ec76caa565938f602f44e43ab717c7dff
4
- data.tar.gz: 288fedf58500ee29541406ede7b9c102063ca4967138a09a81f017ceaf52ba03
3
+ metadata.gz: 67f10a9398cc6eeb3b8cafe747a1fb3ce21dfab6bf316dd85cbca71394cb5443
4
+ data.tar.gz: e5f917774479128c4e1d8120d5cefeed03dbff224e70090c849bc911fd759d05
5
5
  SHA512:
6
- metadata.gz: e98c7542080e894d92dfbcd88dbaefd08823bb5339f5b5957e2d32760a92f06c8a2f04f816b78ed5f1cddd0de1a2c53d6093efea11f9a11d98ab61982c28278c
7
- data.tar.gz: 94df51cee5a7b90b7ed502882aaf7ad5c373255c0db7f5744fe20ba8ff9f73089574d90e7081f29670241f2ea6684cd97a0657dcc461b20a4dff60fa850465e6
6
+ metadata.gz: 0fab179a722aeea47d6635217805b68d8fbdf6ceb58b44f1d2dcb3a4aa7c7b76e71657bcc1585ba78c36335dd6dfd52c723ffda41373c896525960d53ac0887c
7
+ data.tar.gz: 1395aca4a6a05c445b8dcc43b87d69a2e60fabd88ee76f783351325137986d845270172c02946a57af07a078ab9cdc0419995f51215f0abfc5dd6cbc3f47b09c
@@ -131,6 +131,23 @@ module StarkBank
131
131
  )
132
132
  end
133
133
 
134
+ # # Update Deposit entity
135
+ #
136
+ # Update the Deposit by passing its id to be partially or fully reversed.
137
+ #
138
+ # ## Parameters (required):
139
+ # - id [string]: Deposit unique id. ex: '5656565656565656'
140
+ #
141
+ # ## Parameters (optional):
142
+ # - amount [string, nil]: The new amount of the Deposit. If the amount = 0 the Deposit will be fully reversed
143
+ # - user [Organization/Project object]: Organization or Project object. Not necessary if StarkBank.user was set before function call
144
+ #
145
+ # ## Return:
146
+ # - target Deposit with updated attributes
147
+ def self.update(id, amount: nil, user: nil)
148
+ StarkBank::Utils::Rest.patch_id(id: id, amount: amount, user: user, **resource)
149
+ end
150
+
134
151
  def self.resource
135
152
  {
136
153
  resource_name: 'Deposit',
@@ -21,6 +21,8 @@ module StarkBank
21
21
  # ## Parameters (optional):
22
22
  # - expiration [integer, default 3600 (1 hour)]: time interval in seconds between due date and expiration date. ex 123456789
23
23
  # - tags [list of strings, default []]: list of strings for tagging, these will be passed to the respective DynamicBrcode resource when paid
24
+ # - display_description [string, default nil]: optional description to be shown in the receiver bank interface. ex: "Payment for service #1234"
25
+ # - rules [list of Rules, default nil]: list of dynamic brcode rules to be applied to this brcode. ex: [StarkBank::DynamicBrcode::Rule.new(key: "allowedTaxIds", value: ["012.345.678-90"])]
24
26
  #
25
27
  # ## Attributes (return-only):
26
28
  # - id [string]: id returned on creation, this is the BR code. ex: "00020126360014br.gov.bcb.pix0114+552840092118152040000530398654040.095802BR5915Jamie Lannister6009Sao Paulo620705038566304FC6C"
@@ -31,7 +33,7 @@ module StarkBank
31
33
  class DynamicBrcode < StarkCore::Utils::Resource
32
34
  attr_reader :amount, :expiration, :tags, :id, :uuid, :picture_url, :updated, :created
33
35
  def initialize(
34
- amount:, expiration: nil, tags: nil, id: nil, uuid: nil, picture_url: nil, updated: nil, created: nil
36
+ amount:, expiration: nil, tags: nil, id: nil, uuid: nil, picture_url: nil, display_description: nil, rules: nil, updated: nil, created: nil
35
37
  )
36
38
  super(id)
37
39
  @amount = amount
@@ -39,6 +41,8 @@ module StarkBank
39
41
  @tags = tags
40
42
  @uuid = uuid
41
43
  @picture_url = picture_url
44
+ @display_description = display_description
45
+ @rules = StarkBank::DynamicBrcode::Rule.parse_rules(rules)
42
46
  @created = StarkCore::Utils::Checks.check_datetime(created)
43
47
  @updated = StarkCore::Utils::Checks.check_datetime(updated)
44
48
  end
@@ -145,6 +149,8 @@ module StarkBank
145
149
  tags: json['tags'],
146
150
  uuid: json['uuid'],
147
151
  picture_url: json['picture_url'],
152
+ display_description: json['display_description'],
153
+ rules: json['rules'],
148
154
  created: json['created'],
149
155
  updated: json['updated']
150
156
  )
@@ -0,0 +1,46 @@
1
+ require_relative('../utils/rest')
2
+
3
+ module StarkBank
4
+ class DynamicBrcode
5
+ # # DynamicBrcode::Rule object
6
+ #
7
+ # The DynamicBrcode.Rule object modifies the behavior of DynamicBrcode objects when passed as an argument upon their creation.
8
+ #
9
+ # ## Parameters (required):
10
+ # - key [string]: Rule to be customized, describes what DynamicBrcode behavior will be altered. ex: "allowedTaxIds"
11
+ # - value [list of strings]: Value of the rule. ex: ["012.345.678-90", "45.059.493/0001-73"]
12
+ class Rule < StarkCore::Utils::SubResource
13
+ attr_reader :key, :value
14
+ def initialize(key:, value:)
15
+ @key = key
16
+ @value = value
17
+ end
18
+
19
+ def self.parse_rules(rules)
20
+ resource_maker = StarkBank::DynamicBrcode::Rule.resource[:resource_maker]
21
+ return rules if rules.nil?
22
+
23
+ parsed_rules = []
24
+ rules.each do |rule|
25
+ unless rule.is_a? Rule
26
+ rule = StarkCore::Utils::API.from_api_json(resource_maker, rule)
27
+ end
28
+ parsed_rules << rule
29
+ end
30
+ return parsed_rules
31
+ end
32
+
33
+ def self.resource
34
+ {
35
+ resource_name: 'Rule',
36
+ resource_maker: proc { |json|
37
+ Rule.new(
38
+ key: json['key'],
39
+ value: json['value']
40
+ )
41
+ }
42
+ }
43
+ end
44
+ end
45
+ end
46
+ end
@@ -221,6 +221,7 @@ module StarkBank
221
221
  # - amount [string, nil]: Nominal amount charged by the invoice. ex: 100 (R$1.00)
222
222
  # - due [datetime.date or string, default nil]: Invoice due date in UTC ISO format. ex: DateTime.new(2020, 3, 10, 10, 30, 12, 21)
223
223
  # - expiration [number, default nil]: time interval in seconds between the due date and the expiration date. ex 123456789
224
+ # - user [Organization/Project object]: Organization or Project object. Not necessary if StarkBank.user was set before function call
224
225
  #
225
226
  # ## Return:
226
227
  # - updated Invoice object
@@ -0,0 +1,151 @@
1
+ # frozen_string_literal: true
2
+
3
+ require('starkcore')
4
+ require_relative('../utils/rest')
5
+ require_relative('../utils/parse')
6
+
7
+ module StarkBank
8
+
9
+ class Request
10
+
11
+ # # Retrieve any StarkBank resource
12
+ #
13
+ # Receive a json of resources previously created in StarkBank's API
14
+ #
15
+ # Parameters (required):
16
+ #
17
+ # - path [string]: StarkBank resource's route. ex: "/invoice/"
18
+ # - query [json, default None]: Query parameters. ex: {"limit": 1, "status": paid}
19
+ #
20
+ # Parameters (optional):
21
+ #
22
+ # - user [Organization/Project object, default None]: Organization or Project object. Not necessary if StarkBank.user
23
+ # was set before function call
24
+ #
25
+ # Return:
26
+ # - json of StarkBank objects with updated attributes
27
+
28
+ def self.get(path:, query: nil, user: nil)
29
+ content = StarkBank::Utils::Rest.get_raw(
30
+ path: path,
31
+ query: query,
32
+ user: user,
33
+ prefix: "Joker",
34
+ raiseException: false
35
+ )
36
+ end
37
+
38
+ # # Create any StarkBank resource
39
+ #
40
+ # Send a json to create StarkBank resources
41
+ #
42
+ # Parameters (required):
43
+ #
44
+ # - path [string]: StarkBank resource's route. ex: "/invoice/"
45
+ # - body [json]: request parameters. ex: {"invoices": [{"amount": 100, "name": "Iron Bank S.A.", "taxId": "20.018.183/0001-80"}]}
46
+ #
47
+ # Parameters (optional):
48
+ #
49
+ # - user [Organization/Project object, default None]: Organization or Project object. Not necessary if StarkBank.user
50
+ # was set before function call
51
+ # - query [json, default None]: Query parameters. ex: {"limit": 1, "status": paid}
52
+ #
53
+ # Return:
54
+ #
55
+ # - list of resources jsons with updated attributes
56
+
57
+ def self.post(path:, payload:, query: nil, user: nil)
58
+ content = StarkBank::Utils::Rest.post_raw(
59
+ path: path,
60
+ query: query,
61
+ payload: payload,
62
+ user: user,
63
+ prefix: "Joker",
64
+ raiseException: false
65
+ )
66
+ end
67
+
68
+ # # Update any StarkBank resource
69
+ #
70
+ # Send a json with parameters of StarkBank resources to update them
71
+ #
72
+ # Parameters (required):
73
+ #
74
+ # - path [string]: StarkBank resource's route. ex: "/invoice/5699165527090460"
75
+ # - body [json]: request parameters. ex: {"amount": 100}
76
+ #
77
+ # Parameters (optional):
78
+ #
79
+ # - user [Organization/Project object, default None]: Organization or Project object. Not necessary if StarkBank.user
80
+ # was set before function call
81
+ #
82
+ # Return:
83
+ # - json of the resource with updated attributes
84
+
85
+ def self.patch(path:, payload:, query: nil, user: nil)
86
+ content = StarkBank::Utils::Rest.patch_raw(
87
+ path: path,
88
+ query: query,
89
+ payload: payload,
90
+ user: user,
91
+ prefix: "Joker",
92
+ raiseException: false
93
+ )
94
+ end
95
+
96
+ # # Put any StarkBank resource
97
+ #
98
+ # Send a json with parameters of a StarkBank resources to create them.
99
+ # If the resource already exists, you will update it.
100
+ #
101
+ # Parameters (required):
102
+ #
103
+ # - path [string]: StarkBank resource's route. ex: "/split-profile"
104
+ # - body [json]: request parameters. ex: {"profiles": [{"interval": day, "delay": "1"}]}
105
+ #
106
+ # Parameters (optional):
107
+ #
108
+ # - user [Organization/Project object, default None]: Organization or Project object. Not necessary if StarkBank.user
109
+ # was set before function call
110
+ #
111
+ # Return:
112
+ # - json of the resource with updated attributes
113
+
114
+ def self.put(path:, payload:, query: nil, user: nil)
115
+ content = StarkBank::Utils::Rest.put_raw(
116
+ path: path,
117
+ query: query,
118
+ payload: payload,
119
+ user: user,
120
+ prefix: "Joker",
121
+ raiseException: false
122
+ )
123
+ end
124
+
125
+ # # Delete any StarkBank resource
126
+ #
127
+ # Send parameters of StarkBank resources and delete them
128
+ #
129
+ # Parameters (required):
130
+ #
131
+ # - path [string]: StarkBank resource's route. ex: "/transfer/5699165527090460"
132
+ #
133
+ # Parameters (optional):
134
+ #
135
+ # - user [Organization/Project object, default None]: Organization or Project object. Not necessary if StarkBank.user
136
+ # was set before function call
137
+ #
138
+ # Return:
139
+ # - json of the resource with updated attributes
140
+
141
+ def self.delete(path:, query: nil, user: nil)
142
+ content = StarkBank::Utils::Rest.delete_raw(
143
+ path: path,
144
+ query: query,
145
+ user: user,
146
+ prefix: "Joker",
147
+ raiseException: false
148
+ )
149
+ end
150
+ end
151
+ end
data/lib/starkbank.rb CHANGED
@@ -9,6 +9,7 @@ require_relative('invoice/rule')
9
9
  require_relative('invoice/payment')
10
10
  require_relative('dict_key/dict_key')
11
11
  require_relative('dynamic_brcode/dynamic_brcode')
12
+ require_relative('dynamic_brcode/rule')
12
13
  require_relative('deposit/deposit')
13
14
  require_relative('deposit/log')
14
15
  require_relative('card_method/cardmethod')
@@ -54,12 +55,13 @@ require_relative('payment_preview/boleto_preview')
54
55
  require_relative('payment_preview/tax_preview')
55
56
  require_relative('payment_preview/utility_preview')
56
57
  require_relative('institution/institution')
58
+ require_relative('request/request')
57
59
 
58
60
  # SDK to facilitate Ruby integrations with Stark Bank
59
61
  module StarkBank
60
62
 
61
63
  API_VERSION = 'v2'
62
- SDK_VERSION = '2.11.0'
64
+ SDK_VERSION = '2.13.0'
63
65
  HOST = "bank"
64
66
  public_constant :API_VERSION, :SDK_VERSION, :HOST;
65
67
 
data/lib/utils/rest.rb CHANGED
@@ -126,20 +126,6 @@ module StarkBank
126
126
  )
127
127
  end
128
128
 
129
- def self.post_raw(path:, payload:, user:, **query)
130
- return StarkCore::Utils::Rest.post_raw(
131
- host: StarkBank::HOST,
132
- sdk_version: StarkBank::SDK_VERSION,
133
- user: user ? user : StarkBank.user,
134
- path: path,
135
- payload: payload,
136
- api_version: StarkBank::API_VERSION,
137
- language: StarkBank.language,
138
- timeout: StarkBank.timeout,
139
- **query,
140
- )
141
- end
142
-
143
129
  def self.delete_id(resource_name:, resource_maker:, user:, id:)
144
130
  return StarkCore::Utils::Rest.delete_id(
145
131
  resource_name: resource_name,
@@ -168,6 +154,85 @@ module StarkBank
168
154
  **payload
169
155
  )
170
156
  end
157
+
158
+ def self.get_raw(path:, prefix: nil, raiseException: nil, user: nil, query: nil)
159
+ return StarkCore::Utils::Rest.get_raw(
160
+ host: StarkBank::HOST,
161
+ sdk_version: StarkBank::SDK_VERSION,
162
+ user: user ? user : StarkBank.user,
163
+ path: path,
164
+ api_version: StarkBank::API_VERSION,
165
+ language: StarkBank.language,
166
+ timeout: StarkBank.timeout,
167
+ prefix: prefix,
168
+ raiseException: raiseException,
169
+ query: query
170
+ )
171
+ end
172
+
173
+ def self.post_raw(path:, payload:, query: nil, prefix: nil, raiseException: nil, user:)
174
+
175
+ return StarkCore::Utils::Rest.post_raw(
176
+ host: StarkBank::HOST,
177
+ sdk_version: StarkBank::SDK_VERSION,
178
+ user: user ? user : StarkBank.user,
179
+ path: path,
180
+ payload: payload,
181
+ api_version: StarkBank::API_VERSION,
182
+ language: StarkBank.language,
183
+ timeout: StarkBank.timeout,
184
+ query: query,
185
+ prefix: prefix,
186
+ raiseException: raiseException
187
+ )
188
+ end
189
+
190
+ def self.patch_raw(path:, payload:, query: nil, prefix: nil, raiseException: nil, user: nil)
191
+ return StarkCore::Utils::Rest.patch_raw(
192
+ host: StarkBank::HOST,
193
+ sdk_version: StarkBank::SDK_VERSION,
194
+ user: user ? user : StarkBank.user,
195
+ path: path,
196
+ payload: payload,
197
+ api_version: StarkBank::API_VERSION,
198
+ language: StarkBank.language,
199
+ timeout: StarkBank.timeout,
200
+ query: query,
201
+ prefix: prefix,
202
+ raiseException: raiseException
203
+ )
204
+ end
205
+
206
+ def self.put_raw(path:, payload:, query: nil, prefix: nil, raiseException: nil, user: nil)
207
+ return StarkCore::Utils::Rest.put_raw(
208
+ host: StarkBank::HOST,
209
+ sdk_version: StarkBank::SDK_VERSION,
210
+ user: user ? user : StarkBank.user,
211
+ path: path,
212
+ payload: payload,
213
+ api_version: StarkBank::API_VERSION,
214
+ language: StarkBank.language,
215
+ timeout: StarkBank.timeout,
216
+ query: query,
217
+ prefix: prefix,
218
+ raiseException: raiseException
219
+ )
220
+ end
221
+
222
+ def self.delete_raw(path:, query: nil, prefix: nil, raiseException: nil, user: nil)
223
+ return StarkCore::Utils::Rest.delete_raw(
224
+ host: StarkBank::HOST,
225
+ sdk_version: StarkBank::SDK_VERSION,
226
+ user: user ? user : StarkBank.user,
227
+ path: path,
228
+ api_version: StarkBank::API_VERSION,
229
+ language: StarkBank.language,
230
+ timeout: StarkBank.timeout,
231
+ query: query,
232
+ prefix: prefix,
233
+ raiseException: raiseException
234
+ )
235
+ end
171
236
  end
172
237
  end
173
238
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: starkbank
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.0
4
+ version: 2.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - starkbank
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-09-18 00:00:00.000000000 Z
10
+ date: 2025-03-18 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: starkcore
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: 0.1.0
18
+ version: 0.2.2
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: 0.1.0
25
+ version: 0.2.2
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: minitest
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -66,8 +65,6 @@ dependencies:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
67
  version: '0.81'
69
- description:
70
- email:
71
68
  executables: []
72
69
  extensions: []
73
70
  extra_rdoc_files: []
@@ -101,6 +98,7 @@ files:
101
98
  - lib/deposit/log.rb
102
99
  - lib/dict_key/dict_key.rb
103
100
  - lib/dynamic_brcode/dynamic_brcode.rb
101
+ - lib/dynamic_brcode/rule.rb
104
102
  - lib/error.rb
105
103
  - lib/event/attempt.rb
106
104
  - lib/event/event.rb
@@ -117,6 +115,7 @@ files:
117
115
  - lib/payment_preview/tax_preview.rb
118
116
  - lib/payment_preview/utility_preview.rb
119
117
  - lib/payment_request/payment_request.rb
118
+ - lib/request/request.rb
120
119
  - lib/starkbank.rb
121
120
  - lib/tax_payment/log.rb
122
121
  - lib/tax_payment/tax_payment.rb
@@ -134,7 +133,6 @@ homepage: https://github.com/starkbank/sdk-ruby
134
133
  licenses:
135
134
  - MIT
136
135
  metadata: {}
137
- post_install_message:
138
136
  rdoc_options: []
139
137
  require_paths:
140
138
  - lib
@@ -149,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
147
  - !ruby/object:Gem::Version
150
148
  version: '0'
151
149
  requirements: []
152
- rubygems_version: 3.0.3.1
153
- signing_key:
150
+ rubygems_version: 3.6.2
154
151
  specification_version: 4
155
152
  summary: SDK to facilitate Ruby integrations with Stark Bank
156
153
  test_files: []