minfraud 1.6.0 → 2.2.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yml +1 -1
  3. data/.github/workflows/test.yml +1 -0
  4. data/.rubocop.yml +1 -20
  5. data/CHANGELOG.md +80 -4
  6. data/Gemfile +0 -9
  7. data/LICENSE.txt +1 -1
  8. data/README.md +4 -4
  9. data/lib/minfraud/assessments.rb +21 -16
  10. data/lib/minfraud/components/account.rb +1 -1
  11. data/lib/minfraud/components/billing.rb +1 -1
  12. data/lib/minfraud/components/credit_card.rb +40 -8
  13. data/lib/minfraud/components/custom_inputs.rb +1 -1
  14. data/lib/minfraud/components/device.rb +1 -1
  15. data/lib/minfraud/components/email.rb +1 -1
  16. data/lib/minfraud/components/event.rb +11 -11
  17. data/lib/minfraud/components/order.rb +1 -1
  18. data/lib/minfraud/components/payment.rb +153 -142
  19. data/lib/minfraud/components/report/transaction.rb +2 -2
  20. data/lib/minfraud/components/shipping.rb +2 -2
  21. data/lib/minfraud/components/shopping_cart.rb +1 -1
  22. data/lib/minfraud/components/shopping_cart_item.rb +3 -3
  23. data/lib/minfraud/http_service/response.rb +28 -21
  24. data/lib/minfraud/model/device.rb +1 -1
  25. data/lib/minfraud/model/disposition.rb +3 -3
  26. data/lib/minfraud/model/factors.rb +1 -1
  27. data/lib/minfraud/model/ip_address.rb +4 -47
  28. data/lib/minfraud/model/score.rb +1 -1
  29. data/lib/minfraud/model/subscores.rb +1 -23
  30. data/lib/minfraud/report.rb +19 -11
  31. data/lib/minfraud/validates.rb +2 -2
  32. data/lib/minfraud/version.rb +1 -1
  33. data/lib/minfraud.rb +18 -24
  34. data/minfraud.gemspec +13 -10
  35. metadata +47 -67
  36. data/lib/maxmind/geoip2/model/city.rb +0 -99
  37. data/lib/maxmind/geoip2/model/country.rb +0 -94
  38. data/lib/maxmind/geoip2/model/insights.rb +0 -38
  39. data/lib/maxmind/geoip2/record/abstract.rb +0 -46
  40. data/lib/maxmind/geoip2/record/city.rb +0 -62
  41. data/lib/maxmind/geoip2/record/continent.rb +0 -61
  42. data/lib/maxmind/geoip2/record/country.rb +0 -78
  43. data/lib/maxmind/geoip2/record/location.rb +0 -97
  44. data/lib/maxmind/geoip2/record/maxmind.rb +0 -41
  45. data/lib/maxmind/geoip2/record/place.rb +0 -52
  46. data/lib/maxmind/geoip2/record/postal.rb +0 -54
  47. data/lib/maxmind/geoip2/record/represented_country.rb +0 -47
  48. data/lib/maxmind/geoip2/record/subdivision.rb +0 -72
  49. data/lib/maxmind/geoip2/record/traits.rb +0 -233
  50. data/lib/minfraud/http_service/request.rb +0 -38
  51. data/lib/minfraud/http_service.rb +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6df345c5d62d26c7e778a55423ac6a542ec8b94c040c6a43d26ef0cdad484503
4
- data.tar.gz: 9d7d427983c71db3e4aa8ac1f7ef1008388a4847b455db50179e579292ac8c61
3
+ metadata.gz: 0f6c78c29956e0fd0302d07fe250d84bf9d750fb0ef5d713f57afd8bd8ec355d
4
+ data.tar.gz: f438db4f7d05466e6074192031900ce47fffdd1f2f6256706b63fa2d49ca4c56
5
5
  SHA512:
6
- metadata.gz: 2cb3b9e1e1d825c828cf1e73684b70784ee1ba5de18902a1d76cd08b5f625cb276bd3a276c64e74f8c3cf8a8269be9c7707a6cd5afa12700d59281985178d070
7
- data.tar.gz: 55fd1da7ed9543c44a6efcd4b3638b03a1537c31de12773a0446789f129234ceed750e16e8b0c8c629bcf2956815ef0b0f00cfdfe482fe3e4ad736b0cef5b3ef
6
+ metadata.gz: 837c85526868ce32e3485da88043dc5d2d5ec1aeda9b66ed7f30dd75f609eb8bdf9a0645aade8a3ae7b7993384559dbe6d6455be1f36cae0cda873d10b4f829d
7
+ data.tar.gz: ebb55de945c03a0ba68a78ec6c75f3c71b51533be2a5adaf321f35a64e64c6905fca90ba9c996351d9ed190730a97d7cbbc19fb14147e919b29da7457ab409c4
@@ -7,6 +7,6 @@ jobs:
7
7
  - uses: actions/checkout@v2
8
8
  - uses: ruby/setup-ruby@v1
9
9
  with:
10
- ruby-version: '3.0'
10
+ ruby-version: 3.1
11
11
  - run: bundle install
12
12
  - run: bundle exec rake -t rubocop
@@ -13,6 +13,7 @@ jobs:
13
13
  2.6,
14
14
  2.7,
15
15
  '3.0',
16
+ 3.1,
16
17
  jruby,
17
18
  ]
18
19
  exclude:
data/.rubocop.yml CHANGED
@@ -40,7 +40,7 @@ Layout/IndentationStyle:
40
40
  # Style.
41
41
 
42
42
  Style/HashSyntax:
43
- EnforcedStyle: ruby19_no_mixed_keys # Default is ruby19.
43
+ EnforcedStyle: ruby19_no_mixed_keys # Default is ruby19. This one is better.
44
44
 
45
45
  Style/CollectionMethods:
46
46
  Enabled: true # Default is false.
@@ -54,9 +54,6 @@ Style/NegatedIf: # I disagree with this.
54
54
  Style/IfUnlessModifier: # This doesn't always make sense.
55
55
  Enabled: false
56
56
 
57
- Style/SymbolArray:
58
- EnforcedStyle: brackets # Default is percent, but 1.9 doesn't support that.
59
-
60
57
  # Trailing commas are often good.
61
58
  Style/TrailingCommaInArguments:
62
59
  Enabled: false
@@ -65,9 +62,6 @@ Style/TrailingCommaInArrayLiteral:
65
62
  Style/TrailingCommaInHashLiteral:
66
63
  Enabled: false
67
64
 
68
- Style/SafeNavigation:
69
- Enabled: false # Default is true, but this 1.9 doesn't support it.
70
-
71
65
  # Default is both which is probably fine, but it changes code and I don't want
72
66
  # to investigate any possible behavior change right now.
73
67
  Style/EmptyElse:
@@ -76,25 +70,12 @@ Style/EmptyElse:
76
70
  Style/ConditionalAssignment:
77
71
  Enabled: false # This produces kind of strange results.
78
72
 
79
- Style/Dir:
80
- Enabled: false # This is good, but not supported on 1.9.
81
-
82
- Style/ExpandPathArguments:
83
- Enabled: false # This causes us to use __dir__ which 1.9 doesn't support.
84
-
85
73
  Style/GuardClause:
86
74
  Enabled: false # Doesn't always make sense.
87
75
 
88
- Style/Documentation:
89
- Enabled: false # We should enable this, but allow for pre-existing code.
90
-
91
76
  Style/FormatStringToken:
92
77
  Enabled: false # Seems unnecessary.
93
78
 
94
- # Asks to use x.negative? instead of x < 0. But this isn't available until 2.3.
95
- Style/NumericPredicate:
96
- Enabled: false
97
-
98
79
  # Seems unnecessary. Asks us to call super in a bunch of places when there's no
99
80
  # need.
100
81
  Lint/MissingSuper:
data/CHANGELOG.md CHANGED
@@ -1,4 +1,79 @@
1
- # Minfraud Changelog
1
+ # Changelog
2
+
3
+ ## v2.2.0 (2022-03-28)
4
+
5
+ * Added the input `/credit_card/country`. This is the country where the
6
+ issuer of the card is located. This may be passed instead of the
7
+ `/credit_card/issuer_id_number` if you do not wish to pass partial
8
+ account numbers or if your payment processor does not provide them. You
9
+ may provide this using the `country` attribute on
10
+ `Minfraud::Components::CreditCard`.
11
+
12
+ ## v2.1.0 (2022-01-25)
13
+
14
+ * Adds the following new processor to `Minfraud::Components::Payment`:
15
+ * `:windcave`
16
+ * The `last_4_digits` input to `Minfraud::Components::CreditCard` has been
17
+ deprecated in favor of `last_digits` and will be removed in a future
18
+ release. `last_digits`/`last_4_digits` also now supports two digit values
19
+ in addition to the previous four digit values.
20
+ * Eight digit `issuer_id_number` inputs are now supported by
21
+ `Minfraud::Components::CreditCard` in addition to the previously accepted
22
+ six digit `issuer_id_number`. In most cases, you should send the last four
23
+ digits for `last_digits`. If you send an `issuer_id_number` that contains
24
+ an eight digit IIN, and if the credit card brand is not one of the
25
+ following, you should send the last two digits for `last_digits`:
26
+ * `Discover`
27
+ * `JCB`
28
+ * `Mastercard`
29
+ * `UnionPay`
30
+ * `Visa`
31
+
32
+ ## v2.0.0 (2021-12-06)
33
+
34
+ * Breaking change from 1.x: Removed deprecated methods
35
+ `is_in_european_union`, `is_anonymous`, `is_anonymous_vpn`,
36
+ `is_hosting_provider`, `is_public_proxy`, and `is_tor_exit_node`. The
37
+ non-deprecated equivalents are `in_european_union?`, `anonymous?`,
38
+ `anonymous_vpn?`, `hosting_provider?`, `public_proxy?`, and
39
+ `tor_exit_node?`.
40
+ * Breaking change from 1.x: Removed deprecated methods for deprecated
41
+ subscores: `email_tenure` and `ip_tenure`. For `email_tenure`, please use
42
+ the `email_address` subscore instead. For `ip_tenure`, please use
43
+ `risk_score` instead.
44
+ * Breaking change from 1.x: Removed deprecated method for deprecated
45
+ attribute `ip_address.country.is_high_risk`.
46
+ * Breaking change from 1.x: Switches HTTP client from faraday to http.rb.
47
+ There should be no behavior change for most users, but this is
48
+ technically a breaking change from the perspective of semver. Most users
49
+ should not be affected as the changes are limited to attributes and
50
+ classes that would not normally be accessed outside the gem.
51
+ * Breaking change from 1.x: `user_id` is no longer supported as a way to
52
+ configure your MaxMind account ID. Use `account_id` instead.
53
+ * Breaking change from 1.x: Removed the `Minfraud.configuration` method.
54
+ * Breaking change from 1.x: Localized names are no longer exposed via
55
+ methods on `names` objects, only as hash keys. For example, use
56
+ `response.ip_address.country.names['en']` instead of
57
+ `response.ip_address.country.names.en`. The latter was deprecated.
58
+ * Adds mobile country code (MCC) and mobile network code (MNC) to minFraud
59
+ Insights and Factors responses. These are available at
60
+ `response.ip_address.traits.mobile_country_code` and
61
+ `response.ip_address.traits.mobile_network_code`. We expect this data to
62
+ be available by late January, 2022.
63
+ * Adds the following new processors to `Minfraud::Components::Payment`:
64
+ * `:boacompra`
65
+ * `:boku`
66
+ * `:coregateway`
67
+ * `:fiserv`
68
+ * `:neopay`
69
+ * `:neosurf`
70
+ * `:openbucks`
71
+ * `:paysera`
72
+ * `:payvision`
73
+ * `:trustly`
74
+ * Depend on the `maxmind-geoip2` gem. This allows us to delete classes from
75
+ that gem that we previously had included in this gem. There is no
76
+ functional difference.
2
77
 
3
78
  ## v1.6.0 (2021-08-19)
4
79
 
@@ -14,7 +89,7 @@
14
89
 
15
90
  ## v1.5.0 (2021-02-02)
16
91
 
17
- * Add the `hash_address` attribute to `Minfraud::Components::Email`. If
92
+ * Adds the `hash_address` attribute to `Minfraud::Components::Email`. If
18
93
  this is `true`, the MD5 hash of the `address` will be sent instead of the
19
94
  plain text `address`. Use this if you prefer to send the hash of the
20
95
  `address` rather than the plain text. Note that this normalizes the
@@ -24,7 +99,7 @@
24
99
  input is set but the `domain` is not.
25
100
  * Adds new payment processors `:apple_pay` and `:aps_payments` to
26
101
  `Minfraud::Components::Payment`.
27
- * Added support for the IP address risk reasons in the minFraud Insights
102
+ * Adds support for the IP address risk reasons in the minFraud Insights
28
103
  and Factors responses. This is available at `.ip_address.risk_reasons`.
29
104
  It is an array of `IPRiskReason` objects.
30
105
 
@@ -38,7 +113,7 @@
38
113
 
39
114
  * IMPORTANT: Ruby 2.0 is no longer supported. If you're using Ruby 2.0,
40
115
  please use version 1.3.0.
41
- * Add handling for the `REQUEST_INVALID` error code.
116
+ * Adds handling for the `REQUEST_INVALID` error code.
42
117
  * The IP address is no longer a required input.
43
118
  * Adds new payment processor `:tsys` to `Minfraud::Components::Payment`.
44
119
 
@@ -103,6 +178,7 @@
103
178
  * Adds `amount` attribute to the `Minfraud::Components::Order` instances
104
179
 
105
180
  ## v1.0.3 (2016-11-24)
181
+
106
182
  * Adds `token` attribute to the `Minfraud::Components::CreditCard` instances
107
183
  according to the MinFraud Release Notes introduced on November 17, 2016
108
184
 
data/Gemfile CHANGED
@@ -2,13 +2,4 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- # coveralls fails on Ruby 1.9. My understanding is we don't need to run this on
6
- # more than one version anyway, so restrict to the current latest.
7
- version_pieces = RUBY_VERSION.split('.')
8
- major_version = version_pieces[0]
9
- minor_version = version_pieces[1]
10
- if major_version == '2' && minor_version == '7'
11
- gem 'coveralls', require: false
12
- end
13
-
14
5
  gemspec
data/LICENSE.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  The MIT License (MIT)
2
2
 
3
3
  Copyright (c) 2016-2020 kushnir.yb
4
- Copyright (c) 2020-2021 MaxMind, Inc.
4
+ Copyright (c) 2020-2022 MaxMind, Inc.
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -3,9 +3,9 @@
3
3
  ## Description
4
4
 
5
5
  This package provides an API for the [MaxMind minFraud web
6
- services](https://dev.maxmind.com/minfraud/). This includes minFraud Score,
6
+ services](https://dev.maxmind.com/minfraud?lang=en). This includes minFraud Score,
7
7
  Insights, and Factors. It also includes our [minFraud Report Transaction
8
- API](https://dev.maxmind.com/minfraud/report-transaction/).
8
+ API](https://dev.maxmind.com/minfraud/report-a-transaction?lang=en).
9
9
 
10
10
  The legacy minFraud Standard and Premium services are not supported by this
11
11
  API.
@@ -123,7 +123,7 @@ assessment = Minfraud::Assessments.new(
123
123
  },
124
124
  credit_card: {
125
125
  issuer_id_number: '411111',
126
- last_4_digits: '7643',
126
+ last_digits: '7643',
127
127
  bank_name: 'Bank of No Hope',
128
128
  bank_phone_country_code: '1',
129
129
  bank_phone_number: '123-456-1234',
@@ -283,7 +283,7 @@ This API uses [Semantic Versioning](https://semver.org/).
283
283
 
284
284
  Copyright (c) 2016-2020 kushnir.yb.
285
285
 
286
- Copyright (c) 2020-2021 MaxMind, Inc.
286
+ Copyright (c) 2020-2022 MaxMind, Inc.
287
287
 
288
288
  The gem is available as open source under the terms of the [MIT
289
289
  License](https://opensource.org/licenses/MIT).
@@ -4,9 +4,8 @@ module Minfraud
4
4
  # Assessments is used to perform minFraud Score, Insights, and Factors
5
5
  # requests.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/
7
+ # @see https://dev.maxmind.com/minfraud?lang=en
8
8
  class Assessments
9
- include ::Minfraud::HTTPService
10
9
  include ::Minfraud::Resolver
11
10
 
12
11
  # The Account component.
@@ -82,6 +81,8 @@ module Minfraud
82
81
  #
83
82
  # @return [Minfraud::HTTPService::Response]
84
83
  #
84
+ # @raise [JSON::ParserError] if there was invalid JSON in the response.
85
+ #
85
86
  # @raise [Minfraud::AuthorizationError] If there was an authentication
86
87
  # problem.
87
88
  #
@@ -98,6 +99,8 @@ module Minfraud
98
99
  #
99
100
  # @return [Minfraud::HTTPService::Response]
100
101
  #
102
+ # @raise [JSON::ParserError] if there was invalid JSON in the response.
103
+ #
101
104
  # @raise [Minfraud::AuthorizationError] If there was an authentication
102
105
  # problem.
103
106
  #
@@ -114,6 +117,8 @@ module Minfraud
114
117
  #
115
118
  # @return [Minfraud::HTTPService::Response]
116
119
  #
120
+ # @raise [JSON::ParserError] if there was invalid JSON in the response.
121
+ #
117
122
  # @raise [Minfraud::AuthorizationError] If there was an authentication
118
123
  # problem.
119
124
  #
@@ -129,18 +134,22 @@ module Minfraud
129
134
  private
130
135
 
131
136
  def perform_request(endpoint)
132
- raw = request.perform(
133
- verb: :post,
134
- endpoint: endpoint.to_s,
135
- body: request_body,
136
- )
137
+ response = nil
138
+ body = nil
139
+ Minfraud.connection_pool.with do |client|
140
+ response = client.post(
141
+ "/minfraud/v2.0/#{endpoint}",
142
+ json: request_body,
143
+ )
144
+
145
+ body = response.to_s
146
+ end
137
147
 
138
148
  response = ::Minfraud::HTTPService::Response.new(
139
- endpoint: endpoint,
140
- locales: @locales,
141
- status: raw.status.to_i,
142
- body: raw.body,
143
- headers: raw.headers
149
+ endpoint,
150
+ @locales,
151
+ response,
152
+ body,
144
153
  )
145
154
 
146
155
  ::Minfraud::ErrorHandler.examine(response)
@@ -153,9 +162,5 @@ module Minfraud
153
162
  mem.merge!(e.to_s => value.to_json)
154
163
  end
155
164
  end
156
-
157
- def request
158
- @request ||= Request.new(::Minfraud::HTTPService.configuration)
159
- end
160
165
  end
161
166
  end
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Account corresponds to the account object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Account_(/account)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--account
8
8
  class Account < Base
9
9
  include Minfraud::Validates
10
10
 
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Billing corresponds to the billing object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Billing_(/billing)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--billing
8
8
  class Billing < Addressable; end
9
9
  end
10
10
  end
@@ -4,20 +4,22 @@ module Minfraud
4
4
  module Components
5
5
  # CreditCard corresponds to the credit_card object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Credit_Card_(/creditcard)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--credit-card
8
8
  class CreditCard < Base
9
9
  include Minfraud::Validates
10
10
 
11
- # The issuer ID number for the credit card. This is the first 6 digits of
12
- # the credit card number. It identifies the issuing bank.
11
+ # The issuer ID number for the credit card. This is the first 6 or 8
12
+ # digits of the credit card number. It identifies the issuing bank.
13
13
  #
14
14
  # @return [String, nil]
15
15
  attr_accessor :issuer_id_number
16
16
 
17
- # The last four digits of the credit card number.
17
+ # The last two or four digits of the credit card number.
18
+ #
19
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--credit-card__last_digits
18
20
  #
19
21
  # @return [String, nil]
20
- attr_accessor :last_4_digits
22
+ attr_accessor :last_digits
21
23
 
22
24
  # The name of the issuing bank as provided by the end user.
23
25
  #
@@ -39,6 +41,16 @@ module Minfraud
39
41
  # @return [String, nil]
40
42
  attr_accessor :bank_phone_number
41
43
 
44
+ # The two character ISO 3166-1 alpha-2 country code where the issuer of
45
+ # the card is located. This may be passed instead of {::issuer_id_number}
46
+ # if you do not wish to pass partial account numbers, or if your payment
47
+ # processor does not provide them.
48
+ #
49
+ # @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
50
+ #
51
+ # @return [String, nil]
52
+ attr_accessor :country
53
+
42
54
  # A token uniquely identifying the card. The token should consist of
43
55
  # non-space printable ASCII characters. If the token is all digits, it
44
56
  # must be more than 19 characters long. The token must not be a primary
@@ -72,12 +84,31 @@ module Minfraud
72
84
  # @return [Boolean, nil]
73
85
  attr_accessor :was_3d_secure_successful
74
86
 
87
+ # Get the last digits of the credit card number.
88
+ #
89
+ # @deprecated Use {::last_digits} instead.
90
+ #
91
+ # @return [String, nil]
92
+ def last_4_digits
93
+ @last_digits
94
+ end
95
+
96
+ # Set the last digits of the credit card number.
97
+ #
98
+ # @deprecated Use {::last_digits} instead.
99
+ #
100
+ # @return [String, nil]
101
+ def last_4_digits=(last4)
102
+ @last_digits = last4
103
+ end
104
+
75
105
  # @param params [Hash] Hash of parameters. Each key/value should
76
106
  # correspond to one of the available attributes.
77
107
  def initialize(params = {})
78
108
  @bank_phone_country_code = params[:bank_phone_country_code]
109
+ @country = params[:country]
79
110
  @issuer_id_number = params[:issuer_id_number]
80
- @last_4_digits = params[:last_4_digits]
111
+ @last_digits = params[:last_digits] || params[:last_4_digits]
81
112
  @bank_name = params[:bank_name]
82
113
  @bank_phone_number = params[:bank_phone_number]
83
114
  @avs_result = params[:avs_result]
@@ -94,8 +125,9 @@ module Minfraud
94
125
  return if !Minfraud.enable_validation
95
126
 
96
127
  validate_telephone_country_code('bank_phone_country_code', @bank_phone_country_code)
97
- validate_regex('issuer_id_number', /\A[0-9]{6}\z/, @issuer_id_number)
98
- validate_regex('last_4_digits', /\A[0-9]{4}\z/, @last_4_digits)
128
+ validate_country_code('country', @country)
129
+ validate_regex('issuer_id_number', /\A(?:[0-9]{6}|[0-9]{8})\z/, @issuer_id_number)
130
+ validate_regex('last_digits', /\A(?:[0-9]{2}|[0-9]{4})\z/, @last_digits)
99
131
  validate_string('bank_name', 255, @bank_name)
100
132
  validate_string('bank_phone_number', 255, @bank_phone_number)
101
133
  validate_string('avs_result', 1, @avs_result)
@@ -5,7 +5,7 @@ module Minfraud
5
5
  # CustomInputs corresponds to the custom_inputs object of a minFraud
6
6
  # request.
7
7
  #
8
- # @see https://dev.maxmind.com/minfraud/#Custom_Inputs_(/custominputs)
8
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--custom-inputs
9
9
  class CustomInputs < Base
10
10
  include Minfraud::Validates
11
11
 
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Device corresponds to the device object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Device_(/device)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--device
8
8
  class Device < Base
9
9
  include Minfraud::Validates
10
10
 
@@ -7,7 +7,7 @@ module Minfraud
7
7
  module Components
8
8
  # Email corresponds to the email object of a minFraud request.
9
9
  #
10
- # @see https://dev.maxmind.com/minfraud/#Email_(/email)
10
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--email
11
11
  class Email < Base
12
12
  include Minfraud::Validates
13
13
 
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Event corresponds to the event object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Event_(/event)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--event
8
8
  class Event < Base
9
9
  include ::Minfraud::Enum
10
10
  include Minfraud::Validates
@@ -43,16 +43,16 @@ module Minfraud
43
43
  #
44
44
  # @return [Symbol, nil]
45
45
  enum_accessor :type,
46
- [
47
- :account_creation,
48
- :account_login,
49
- :email_change,
50
- :password_reset,
51
- :payout_change,
52
- :purchase,
53
- :recurring_purchase,
54
- :referral,
55
- :survey,
46
+ %i[
47
+ account_creation
48
+ account_login
49
+ email_change
50
+ password_reset
51
+ payout_change
52
+ purchase
53
+ recurring_purchase
54
+ referral
55
+ survey
56
56
  ]
57
57
 
58
58
  # @param params [Hash] Hash of parameters. Each key/value should
@@ -4,7 +4,7 @@ module Minfraud
4
4
  module Components
5
5
  # Order corresponds to the order object of a minFraud request.
6
6
  #
7
- # @see https://dev.maxmind.com/minfraud/#Order_(/order)
7
+ # @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--order
8
8
  class Order < Base
9
9
  include Minfraud::Validates
10
10