datadome_fraud_sdk_ruby 0.1.0 → 1.0.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: 562e73467299bca33309183c1e8f84e26571346082000ca19767295d4bcdb558
4
- data.tar.gz: 9f60b87c715a36bc402d76018b9b96f7d30a901d8f1e07b6488f7537c2251f87
3
+ metadata.gz: 2b8713046c4239173b65684b92fd86c95371bd74f7dfeb71ad7cfe7c8d3ba2f5
4
+ data.tar.gz: 5acc8e0e5f7b878ebc92637052cd10b7fca76f20492cafc47e02741fcc2064d2
5
5
  SHA512:
6
- metadata.gz: 7163115049e8696367c168e69a36a1fa36f80f6bb64e72baeaab93c9614136feefe89954ec9e415913d51db72eb152670f91e2dac7f5223c5ddc225286d43979
7
- data.tar.gz: 6600c8180c52163a5039c47d4ae5895142e57b63a602ae13bef327e4a8137e393a64540bdc00e2bcf8a549b38640c9915e77beb3cc75495ab7ab7a514300eafc
6
+ metadata.gz: 42b2be325fe412f8e21a1a0f7be4641a01568f5b3e4ee06cdde3af8c264ec4f686530d00f34877c58fc8171c62ddc68dadd2ba0cafbb94504ba1798e2f5993e4
7
+ data.tar.gz: 72364626f1bfe4378696d3db32a3617a7f909642c0d18baa83f0c3cece393492321afe9830ca116aee0ea389d49459feedaf4c397538a9e566c7b57b6e1dfcd7
data/README.md CHANGED
@@ -1,2 +1,3 @@
1
- # fraud-sdk-ruby
2
- Fraud Protection for Ruby
1
+ # DataDome Fraud Protection - Ruby SDK
2
+
3
+ Documentation: https://docs.datadome.co/docs/account-protect
data/lib/constants.rb CHANGED
@@ -1,2 +1,2 @@
1
- SDK_VERSION = '0.1.0'
1
+ SDK_VERSION = '1.0.0'
2
2
  SDK_NAME = 'datadome_fraud_sdk_ruby'
@@ -31,7 +31,7 @@ class DataDome
31
31
  begin
32
32
  body = JSON.parse(api_response.body) unless api_response.body.nil?
33
33
  rescue JSON::ParserError => e
34
- @logger.error("DataDome: error parsing JSON from Fraud API #{e.message}")
34
+ @logger.error("DataDome: error parsing JSON from Fraud API /validate #{e.message}")
35
35
  return DataDomeResponseError.new(DataDomeResponseAction::ALLOW, DataDomeResponseStatus::FAILURE, "DataDome: error parsing JSON from Fraud API", e.message)
36
36
  end
37
37
 
@@ -41,7 +41,7 @@ class DataDome
41
41
  datadome_response.action = DataDomeResponseAction::DENY
42
42
  end
43
43
  else
44
- @logger.error("DataDome: error on Fraud API response #{body["errors"]}")
44
+ @logger.error("DataDome: error on Fraud API /validate response #{body["errors"]}")
45
45
  return DataDomeResponseError.new(DataDomeResponseAction::ALLOW, DataDomeResponseStatus::FAILURE, body["message"], body["errors"])
46
46
  end
47
47
  rescue Faraday::TimeoutError => e
@@ -68,10 +68,10 @@ class DataDome
68
68
  else
69
69
  begin
70
70
  body = JSON.parse(api_response.body)
71
- @logger.error("DataDome: error on Fraud API response #{body["errors"]}")
71
+ @logger.error("DataDome: error on Fraud API /collect response #{body["errors"]}")
72
72
  datadome_response = DataDomeResponseError.new(nil, DataDomeResponseStatus::FAILURE, body["message"], body["errors"])
73
73
  rescue JSON::ParserError => e
74
- @logger.error("DataDome: error parsing JSON from Fraud API #{e.message}")
74
+ @logger.error("DataDome: error parsing JSON from Fraud API /collect #{e.message}")
75
75
  return DataDomeResponseError.new(nil, DataDomeResponseStatus::FAILURE, "DataDome: error parsing JSON from Fraud API", e.message)
76
76
  end
77
77
  end
data/lib/model/address.rb CHANGED
@@ -1,21 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Address
4
- attr_accessor :name, :line1, :line2, :city, :countryCode, :country, :regionCode, :zipCode
4
+ attr_accessor :name, :line1, :line2, :city, :countryCode, :regionCode, :zipCode
5
5
 
6
- def initialize(name = nil, line1 = nil, line2 = nil, city = nil, countryCode = nil, country = nil, regionCode = nil, zipCode = nil)
6
+ def initialize(name = nil, line1 = nil, line2 = nil, city = nil, countryCode = nil, regionCode = nil, zipCode = nil)
7
7
  @name = name
8
8
  @line1 = line1
9
9
  @line2 = line2
10
10
  @city = city
11
11
  @countryCode = countryCode
12
- @country = country
13
12
  @regionCode = regionCode
14
13
  @zipCode = zipCode
15
14
  end
16
15
 
17
16
  def to_s
18
- "Address: name=#{name}, line1=#{line1}, line2=#{line2}, city=#{city}, countryCode=#{countryCode}, country=#{country}, regionCode=#{regionCode}, zipCode=#{zipCode}"
17
+ "Address: name=#{name}, line1=#{line1}, line2=#{line2}, city=#{city}, countryCode=#{countryCode}, regionCode=#{regionCode}, zipCode=#{zipCode}"
19
18
  end
20
19
 
21
20
  def to_json(options = {})
@@ -25,7 +24,6 @@ class Address
25
24
  line2: line2,
26
25
  city: city,
27
26
  countryCode: countryCode,
28
- country: country,
29
27
  regionCode: regionCode,
30
28
  zipCode: zipCode,
31
29
  }.to_json
@@ -2,7 +2,7 @@
2
2
 
3
3
  require_relative "../../constants"
4
4
 
5
- class DatadomeModule
5
+ class DataDomeModule
6
6
  attr_accessor :requestTimeMicros, :name, :version
7
7
 
8
8
  def initialize
@@ -21,16 +21,16 @@ class DatadomeModule
21
21
  end
22
22
 
23
23
  class DataDomeHeaders
24
- attr_accessor :addr, :clientIp, :contentype, :host, :port, :xRealIP, :xForwardedForIp,
24
+ attr_accessor :addr, :clientIp, :contentType, :host, :port, :xRealIP, :xForwardedForIp,
25
25
  :acceptEncoding, :acceptLanguage, :accept, :method, :protocol, :serverHostname,
26
26
  :referer, :userAgent, :from, :request, :origin, :acceptCharset, :connection,
27
- :clientId, :secCHUA, :secCHUAMobile, :secCHUAPlatform, :secCHUAArch,
27
+ :clientID, :secCHUA, :secCHUAMobile, :secCHUAPlatform, :secCHUAArch,
28
28
  :secCHUAFullVersionList, :secCHUAModel, :secCHDeviceMemory
29
29
 
30
30
  def initialize(request)
31
31
  @addr = request.remote_ip
32
32
  @clientIp = request.headers["HTTP_CLIENT_IP"]
33
- @contentype = truncate(request.headers["Content-Type"], 64)
33
+ @contentType = truncate(request.headers["Content-Type"], 64) # this value is a meta-variable of the request
34
34
  @host = truncate(request.headers["HTTP_HOST"], 512)
35
35
  @port = request.port || 0
36
36
  @xRealIP = truncate(request.headers["HTTP_X_REAL_IP"], 128)
@@ -48,7 +48,7 @@ class DataDomeHeaders
48
48
  @origin = truncate(request.headers["HTTP_ORIGIN"], 512)
49
49
  @acceptCharset = truncate(request.headers["HTTP_ACCEPT_CHARSET"], 128)
50
50
  @connection = truncate(request.headers["HTTP_CONNECTION"], 128)
51
- @clientId = request.cookies["datadome"]
51
+ @clientID = request.cookies["datadome"]
52
52
  @secCHUA = truncate(request.headers["HTTP_SEC_CH_UA"], 128)
53
53
  @secCHUAMobile = truncate(request.headers["HTTP_SEC_CH_UA_MOBILE"], 8)
54
54
  @secCHUAPlatform = truncate(request.headers["HTTP_SEC_CH_UA_PLATFORM"], 32)
@@ -69,7 +69,7 @@ class DataDomeRequest
69
69
  attr_accessor :module, :header
70
70
 
71
71
  def initialize(request)
72
- @module = DatadomeModule.new
72
+ @module = DataDomeModule.new
73
73
  @header = DataDomeHeaders.new(request)
74
74
  end
75
75
 
data/lib/model/events.rb CHANGED
@@ -3,7 +3,6 @@
3
3
  module ActionType
4
4
  LOGIN = "login"
5
5
  REGISTER = "registration"
6
- PAYMENT = "payment"
7
6
  end
8
7
 
9
8
  module StatusType
data/lib/model/session.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "time"
4
+
3
5
  class DataDomeSession
4
- def initialize(id, createdAt = Time.now.strftime("%s%6N").to_i)
6
+ attr_reader :id, :createdAt
7
+
8
+ def initialize(id, createdAt = Time.now.iso8601)
5
9
  @id = id
6
10
  @createdAt = createdAt
7
11
  end
@@ -17,3 +21,4 @@ class DataDomeSession
17
21
  }.to_json
18
22
  end
19
23
  end
24
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadome_fraud_sdk_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DataDome
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-17 00:00:00.000000000 Z
11
+ date: 2024-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday