ravelin 0.1.29 → 0.1.34

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: 8eab5366dba9c0e8631c5ad551e93fb2a8beecd48f70c7c61e7a9c39eae5fe0f
4
- data.tar.gz: 49db126736420b0d98d07ffabb66500b53ce219ac2e869bfe6b34053bf787610
3
+ metadata.gz: 4a9f40b6308fcc73d7fdf88845254973b6c09eca4b8deac74b8885c6db755067
4
+ data.tar.gz: 23f8ce1a7e4d2c9398b569be342260e1fb9d1520a822fe8fc1f835cb9ab86542
5
5
  SHA512:
6
- metadata.gz: e40ab3391a40c2fcba279acd83528e199461603a3f0540a946d6927c1f4d7b0ae28a3f1cc01789cce96c4d729d145083f14aacb77ae012002c33c9bbbd18c48c
7
- data.tar.gz: 6955052fe1c17d4ddfcb5c957e2d7da15fa3f8a20600a3f9067ce7368f451beb47a46b7298b4ea703c04c93babb4169bf7131c18a8ca98d1a19c5ec9e6337564
6
+ metadata.gz: 8273aaf40a22a7f95099851824e1d03b943523bac0b8d8ed55a6a7110134bed0442d73abaa9b72bfb92e27573c1610d577520ffa4cc08ffe3d38ca6989194bda
7
+ data.tar.gz: c01bdce148538af7ab80a21b2d2498305b9c0b78ceaac336f82d6b359afa26e28bbd95d9df13f119d2a32faa0882d881976d2300655be4da90f9487da1244cfc
@@ -16,12 +16,14 @@ require 'ravelin/authentication_mechanism'
16
16
  require 'ravelin/ato_login'
17
17
  require 'ravelin/ato_reclaim'
18
18
  require 'ravelin/chargeback'
19
+ require 'ravelin/checkout_transaction'
19
20
  require 'ravelin/customer'
20
21
  require 'ravelin/device'
21
22
  require 'ravelin/item'
22
23
  require 'ravelin/location'
23
24
  require 'ravelin/login'
24
25
  require 'ravelin/order'
26
+ require 'ravelin/app'
25
27
  require 'ravelin/payment_method'
26
28
  require 'ravelin/password'
27
29
  require 'ravelin/pre_transaction'
@@ -0,0 +1,27 @@
1
+ module Ravelin
2
+ class App < RavelinObject
3
+ attr_accessor :name, :platform, :domain
4
+
5
+ PLATFORM_IOS = 'ios'
6
+ PLATFORM_ANDROID = 'android'
7
+ PLATFORM_WEB = 'web'
8
+ PLATFORM_MOBILE_WEB = 'mobile-web'
9
+ PLATFORM_VALUES = [PLATFORM_IOS, PLATFORM_ANDROID, PLATFORM_WEB, PLATFORM_MOBILE_WEB]
10
+
11
+ def validate
12
+ super
13
+
14
+ raise ArgumentError, "Platform value be one of #{PLATFORM_VALUES.join(', ')}" unless App.valid_platform?(platform)
15
+ raise ArgumentError, 'Domain is not valid' unless App.valid_domain?(domain)
16
+ end
17
+
18
+ def self.valid_platform?(platform)
19
+ platform.nil? || PLATFORM_VALUES.include?(platform)
20
+ end
21
+
22
+ def self.valid_domain?(domain)
23
+ domain.nil? || /^[a-z0-9\-\\.]+$/.match(domain)
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ module Ravelin
2
+ # Represents a transaction as used in the checkout endpoint.
3
+ # As such it can have all the fields of a regular Transaction but only requires the fields of PreTransaction
4
+ class CheckoutTransaction < RavelinObject
5
+ attr_accessor :transaction_id,
6
+ :email,
7
+ :currency,
8
+ :debit,
9
+ :credit,
10
+ :gateway,
11
+ :custom,
12
+ :success,
13
+ :auth_code,
14
+ :decline_code,
15
+ :gateway_reference,
16
+ :avs_result_code,
17
+ :cvv_result_code,
18
+ :type,
19
+ :time,
20
+ :three_d_secure
21
+
22
+ attr_required :transaction_id, :currency, :debit, :credit
23
+
24
+ def initialize(params)
25
+ unless params['3ds'].nil?
26
+ self.three_d_secure = ThreeDSecure.new(params['3ds'])
27
+ params.delete('3ds')
28
+ end
29
+
30
+ super(params)
31
+ end
32
+
33
+ end
34
+ end
@@ -39,12 +39,23 @@ module Ravelin
39
39
  password: Password,
40
40
  payment_method: PaymentMethod,
41
41
  voucher_redemption: VoucherRedemption,
42
- transaction: name == :pretransaction ? PreTransaction : Transaction,
42
+ transaction: transaction,
43
43
  label: Label,
44
44
  voucher: Voucher,
45
45
  }
46
46
  end
47
47
 
48
+ def transaction
49
+ case name
50
+ when :pretransaction
51
+ PreTransaction
52
+ when :checkout
53
+ CheckoutTransaction
54
+ else
55
+ Transaction
56
+ end
57
+ end
58
+
48
59
  def format_timestamp(timestamp)
49
60
  case @internal_name
50
61
  when :ato_login
@@ -13,7 +13,8 @@ module Ravelin
13
13
  :custom,
14
14
  :creation_time,
15
15
  :execution_time,
16
- :status
16
+ :status,
17
+ :app
17
18
 
18
19
  attr_required :order_id
19
20
 
@@ -30,5 +31,9 @@ module Ravelin
30
31
  def to=(obj)
31
32
  @to = Ravelin::Location.new(obj)
32
33
  end
34
+
35
+ def app=(obj)
36
+ @app = Ravelin::App.new(obj)
37
+ end
33
38
  end
34
39
  end
@@ -15,7 +15,7 @@ module Ravelin
15
15
  @password_hashed = passwd
16
16
  end
17
17
 
18
- FAILURE_REASONS = %w(BAD_PASSWORD UNKNOWN_USERNAME INTERNAL_ERROR RATE_LIMIT)
18
+ FAILURE_REASONS = %w(BAD_PASSWORD UNKNOWN_USERNAME AUTHENTICATION_FAILURE INTERNAL_ERROR RATE_LIMIT BANNED_USER)
19
19
 
20
20
  def validate
21
21
  super
@@ -10,6 +10,6 @@ module Ravelin
10
10
  :time,
11
11
  :custom
12
12
 
13
- attr_required :transaction_id, :currency, :debit, :credit, :gateway
13
+ attr_required :transaction_id, :currency, :debit, :credit
14
14
  end
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module Ravelin
2
- VERSION = '0.1.29'
2
+ VERSION = '0.1.34'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ravelin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.29
4
+ version: 0.1.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Levy
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2020-07-13 00:00:00.000000000 Z
14
+ date: 2020-12-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
@@ -108,10 +108,12 @@ extensions: []
108
108
  extra_rdoc_files: []
109
109
  files:
110
110
  - lib/ravelin.rb
111
+ - lib/ravelin/app.rb
111
112
  - lib/ravelin/ato_login.rb
112
113
  - lib/ravelin/ato_reclaim.rb
113
114
  - lib/ravelin/authentication_mechanism.rb
114
115
  - lib/ravelin/chargeback.rb
116
+ - lib/ravelin/checkout_transaction.rb
115
117
  - lib/ravelin/client.rb
116
118
  - lib/ravelin/customer.rb
117
119
  - lib/ravelin/device.rb