incognia_api 0.5.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 05c3363dc442dde9522b4d2e892afb717a0ecdd65ea2c59892de3ef714f2b880
4
- data.tar.gz: a4bcbc1a6e0fe94a562569a2d10387bd17217767f3a306309dbf5add8d2e843c
3
+ metadata.gz: 6475d6c1fa5bf56e643e001516911dad924d51c48022f2f2ff3888a756443581
4
+ data.tar.gz: 7af66755bea5f89918309815d9a10fbfeda56917db601ef5bb9a73f7c92788c1
5
5
  SHA512:
6
- metadata.gz: 6766188936507d3f38c83b0c8a8af6dd50d4c0696aff7ad1d7b4a3e672d173fc54b305595c2b3eb8065274ff3b72cbc75c217b2f1a730c2b2c037b0600c56697
7
- data.tar.gz: 4a04d1026329b3d4506b8a5299315cd87c812fdb1467f214f976673669e672d238bd30a50dc0532a2380848eab41490a04073790c1dd53e09c67749f127e369f
6
+ metadata.gz: ec274dd33ff8ad18bbed3fc9ed6062457affa9b8640234c9b7bac5581867801a01a98b56c8ad8a606185e4e211ce0ce590f664e11bfe70c76d883d3e896c4461
7
+ data.tar.gz: 861d1ac7d0cbd767f799bee589a9a947c2d4922b31abf3fcc9152ac606560e300a412a558795ae4f120a168e4506007cefa977cd8bab51830c652ddd910f11ee
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.5.1] - 2023-07-13
4
+
5
+ - Allow registering payments
6
+
3
7
  ## [0.5.0] - 2023-04-20
4
8
 
5
9
  - Specify dependencies version
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- incognia_api (0.5.0)
4
+ incognia_api (0.5.2)
5
5
  faraday (~> 1.10)
6
6
  faraday_middleware (~> 1.2)
7
7
 
@@ -81,4 +81,4 @@ DEPENDENCIES
81
81
  webmock
82
82
 
83
83
  BUNDLED WITH
84
- 2.3.7
84
+ 2.4.13
data/README.md CHANGED
@@ -125,6 +125,84 @@ assessment = api.register_login(
125
125
  # => #<OpenStruct id="...", device_id="...", risk_assessment="..", evidence=...>
126
126
  ```
127
127
 
128
+ ### Registering Payment
129
+
130
+ This method registers a new payment for the given installation and account, returning a `hash`,
131
+ containing the risk assessment and supporting evidence.
132
+
133
+ ```ruby
134
+ assessment = api.register_payment(
135
+ installation_id: 'installation-id',
136
+ account_id: 'account-id'
137
+ )
138
+
139
+ # => #<OpenStruct id="...", device_id="...", risk_assessment="..", evidence=...>
140
+ ```
141
+
142
+ It also supports optional parameters, for example:
143
+
144
+ ```ruby
145
+ addresses = [
146
+ {
147
+ 'type': 'shipping',
148
+ 'structured_address': {
149
+ 'locale': 'pt-BR',
150
+ 'country_name': 'Brasil',
151
+ 'country_code': 'BR',
152
+ 'state': 'SP',
153
+ 'city': 'São Paulo',
154
+ 'borough': '',
155
+ 'neighborhood': 'Bela Vista',
156
+ 'street': 'Av. Paulista',
157
+ 'number': '1578',
158
+ 'complements': 'Andar 2',
159
+ 'postal_code': '01310-200'
160
+ },
161
+ 'address_coordinates': {
162
+ 'lat': -23.561414,
163
+ 'lng': -46.6558819
164
+ }
165
+ }
166
+ ]
167
+
168
+ payment_value = {
169
+ 'amount': 5.0,
170
+ 'currency': 'BRL'
171
+ }
172
+
173
+ payment_methods = [
174
+ {
175
+ 'type': 'credit_card',
176
+ 'credit_card_info': {
177
+ 'bin': '123456',
178
+ 'last_four_digits': '1234',
179
+ 'expiry_year': '2027',
180
+ 'expiry_month': '10'
181
+ }
182
+ },
183
+ {
184
+ 'type': 'debit_card',
185
+ 'debit_card_info': {
186
+ 'bin': '123456',
187
+ 'last_four_digits': '1234',
188
+ 'expiry_year': '2027',
189
+ 'expiry_month': '10'
190
+ }
191
+ }
192
+ ]
193
+
194
+ assessment = api.register_payment(
195
+ installation_id: 'installation-id',
196
+ account_id: 'account-id',
197
+ external_id: 'external-id',
198
+ addresses: addresses,
199
+ payment_value: payment_value,
200
+ payment_methods: payment_methods
201
+ )
202
+
203
+ # => #<OpenStruct id="...", device_id="...", risk_assessment="..", evidence=...>
204
+ ```
205
+
128
206
  ### Registering a Feedback
129
207
 
130
208
  This method registers a feedback event for the given identifiers (optional arguments), returning true when success.
@@ -69,5 +69,18 @@ module Incognia
69
69
 
70
70
  response.success?
71
71
  end
72
+
73
+ def register_payment(installation_id:, account_id:, **opts)
74
+ params = { installation_id: installation_id, account_id: account_id, type: :payment }
75
+ params.merge!(opts)
76
+
77
+ response = connection.request(
78
+ :post,
79
+ 'v2/authentication/transactions',
80
+ params
81
+ )
82
+
83
+ PaymentAssessment.from_hash(response.body) if response.success?
84
+ end
72
85
  end
73
86
  end
@@ -14,7 +14,12 @@ module Incognia
14
14
  @client_secret = client_secret
15
15
  @host = host
16
16
 
17
- @connection = Faraday.new(host) do |faraday|
17
+ headers = { 'User-Agent' => "incognia-ruby/#{Incognia::VERSION} " \
18
+ "({#{RbConfig::CONFIG['host']}}) " \
19
+ "{#{RbConfig::CONFIG['arch']}} " \
20
+ "Ruby/#{RbConfig::CONFIG['ruby_version']}" }
21
+
22
+ @connection = Faraday.new(host, headers: headers) do |faraday|
18
23
  faraday.request :json
19
24
  faraday.response :json, content_type: /\bjson$/
20
25
  faraday.response :raise_error
@@ -0,0 +1,5 @@
1
+ require_relative "api_resource"
2
+
3
+ module Incognia
4
+ class PaymentAssessment < APIResource; end
5
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Incognia
4
- VERSION = "0.5.0"
4
+ VERSION = "0.5.2"
5
5
  end
data/lib/incognia_api.rb CHANGED
@@ -9,6 +9,7 @@ require_relative "incognia_api/api"
9
9
  require_relative "incognia_api/resources/api_resource"
10
10
  require_relative "incognia_api/resources/signup_assessment"
11
11
  require_relative "incognia_api/resources/login_assessment"
12
+ require_relative "incognia_api/resources/payment_assessment"
12
13
  require_relative "incognia_api/resources/credentials"
13
14
 
14
15
  require_relative "incognia_api/constants/feedback_event"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: incognia_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guilherme Cavalcanti
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-20 00:00:00.000000000 Z
11
+ date: 2023-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -67,6 +67,7 @@ files:
67
67
  - lib/incognia_api/resources/api_resource.rb
68
68
  - lib/incognia_api/resources/credentials.rb
69
69
  - lib/incognia_api/resources/login_assessment.rb
70
+ - lib/incognia_api/resources/payment_assessment.rb
70
71
  - lib/incognia_api/resources/signup_assessment.rb
71
72
  - lib/incognia_api/util.rb
72
73
  - lib/incognia_api/version.rb
@@ -91,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
92
  - !ruby/object:Gem::Version
92
93
  version: '0'
93
94
  requirements: []
94
- rubygems_version: 3.1.6
95
+ rubygems_version: 3.3.7
95
96
  signing_key:
96
97
  specification_version: 4
97
98
  summary: Official Ruby lib for communicating with Incognia API