zaala 0.2.0 → 0.3.0

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: 3e7ce8d64c7b4f13fb5c03dfc38a431595842dd4d4d34d7c3444014ca458976a
4
- data.tar.gz: 8d1bcb796c6b71649bfe92fb8a46fc8c42657ad24fbbe1ceea457301c6977dc9
3
+ metadata.gz: f0a55d072af2dd4980af6bfe06f3345be59669e8ad2224da59a14eac7731dce9
4
+ data.tar.gz: 8027aedf2cf15235ab8cba315194c99223bef37ff66e61c1b74f516dec8e5837
5
5
  SHA512:
6
- metadata.gz: df99053a8a416b55b7fb4967ae021ce1315257d7123b3a72b8547c1e4cfd72e668c40983701ed014c17d0377b7428ea5237e9d0eb71512d51a3088e21afdefe1
7
- data.tar.gz: db5b6b6d59c76d4fdfcec8e0ecd995db275fa70c243e3424bb0c07eb9093c54699af2cf464643e3307d6a974b96f5fc21e6193a053ac220c35ad036c08315c43
6
+ metadata.gz: 502496d79d807838df293c5be15649cf6dccd4830a872e5fe685b746e294e26a65db99509e9cb731cadb2281cd0e57368803f4322b00e5333e27640b044100ad
7
+ data.tar.gz: 94c4926c4977ae3fc616594b18ce4befad3fcce6ad038b0303694b9e587eb2a0c332cfa28e329a49ae43c098f83f1634c02e26cc58eaf9d414757dc58e60dd20
@@ -43,15 +43,8 @@ module Zaala::API
43
43
  ensure_operation_exists(:pre_authorize)
44
44
  raise BadRequestError.new("pre_authorize operation requires an AuthorizationRequest parameter") unless req.is_a?(AuthorizationRequest)
45
45
 
46
- res = @kar.call(:pre_authorize) do
47
- message(authorizationRequest: req.to_message)
48
- end
46
+ res = call(:pre_authorize, authorizationRequest: req.to_message)
49
47
  AuthorizationResponse.from_message(res.body[:preAuthorizeResponse][:return])
50
- rescue Savon::SOAPFault => e
51
- # Extract bad request errors
52
- maybe_raise_invalid_fields(e.to_hash[:Fault])
53
- # Fallback to standard errro
54
- raise StandardError, e.to_hash.dig(:Fault, :faultstring)
55
48
  end
56
49
 
57
50
  # Authorizes a purchase transaction.
@@ -59,15 +52,8 @@ module Zaala::API
59
52
  ensure_operation_exists(:authorize)
60
53
  raise BadRequestError.new("authorize operation requires an AuthorizationRequest parameter") unless req.is_a?(AuthorizationRequest)
61
54
 
62
- res = @kar.call(:authorize) do
63
- message(authorizationRequest: req.to_message)
64
- end
55
+ res = call(:authorize, authorizationRequest: req.to_message)
65
56
  AuthorizationResponse.from_message(res.body[:authorizeResponse][:return])
66
- rescue Savon::SOAPFault => e
67
- # Extract bad request errors
68
- maybe_raise_invalid_fields(e.to_hash[:Fault])
69
- # Fallback to standard errro
70
- raise StandardError, e.to_hash.dig(:Fault, :faultstring)
71
57
  end
72
58
 
73
59
  # Cancel a previous reservation of funds.
@@ -75,15 +61,8 @@ module Zaala::API
75
61
  ensure_operation_exists(:cancel_authorization)
76
62
  raise BadRequestError.new("cancel_authorization operation requires a CancellationRequest parameter") unless req.is_a?(CancellationRequest)
77
63
 
78
- res = @kar.call(:cancel_authorization) do
79
- message(cancellationRequest: req.to_message)
80
- end
64
+ res = call(:cancel_authorization, cancellationRequest: req.to_message)
81
65
  CancellationResponse.from_message(res.body[:cancelAuthorizationResponse][:return])
82
- rescue Savon::SOAPFault => e
83
- # Extract bad request errors
84
- maybe_raise_invalid_fields(e.to_hash[:Fault])
85
- # Fallback to standard errro
86
- raise StandardError, e.to_hash.dig(:Fault, :faultstring)
87
66
  end
88
67
 
89
68
  # Perform a solvency check.
@@ -91,15 +70,8 @@ module Zaala::API
91
70
  ensure_operation_exists(:check)
92
71
  raise BadRequestError.new("check operation requires a CheckRequest parameter") unless req.is_a?(CheckRequest)
93
72
 
94
- res = @kar.call(:check) do
95
- message(checkRequest: req.to_message)
96
- end
73
+ res = call(:check, checkRequest: req.to_message)
97
74
  CheckResponse.from_message(res.body[:checkResponse][:return])
98
- rescue Savon::SOAPFault => e
99
- # Extract bad request errors
100
- maybe_raise_invalid_fields(e.to_hash[:Fault])
101
- # Fallback to standard errro
102
- raise StandardError, e.to_hash.dig(:Fault, :faultstring)
103
75
  end
104
76
 
105
77
  # Returns available information about an authorization-ID.
@@ -107,15 +79,8 @@ module Zaala::API
107
79
  ensure_operation_exists(:info)
108
80
  raise BadRequestError.new("info operation requires an InfoRequest parameter") unless req.is_a?(InfoRequest)
109
81
 
110
- res = @kar.call(:info) do
111
- message(infoRequest: req.to_message)
112
- end
82
+ res = call(:info, infoRequest: req.to_message)
113
83
  InfoResponse.from_message(res.body[:infoResponse][:return])
114
- rescue Savon::SOAPFault => e
115
- # Extract bad request errors
116
- maybe_raise_invalid_fields(e.to_hash[:Fault])
117
- # Fallback to standard errro
118
- raise StandardError, e.to_hash.dig(:Fault, :faultstring)
119
84
  end
120
85
 
121
86
  # Verifies the given MTAN.
@@ -123,15 +88,8 @@ module Zaala::API
123
88
  ensure_operation_exists(:verify)
124
89
  raise BadRequestError.new("info operation requires a VerifyRequest parameter") unless req.is_a?(VerifyRequest)
125
90
 
126
- res = @kar.call(:verify) do
127
- message(verifyRequest: req.to_message)
128
- end
91
+ res = call(:verify, verifyRequest: req.to_message)
129
92
  VerifyResponse.from_message(res.body[:verifyResponse][:return])
130
- rescue Savon::SOAPFault => e
131
- # Extract bad request errors
132
- maybe_raise_invalid_fields(e.to_hash[:Fault])
133
- # Fallback to standard errro
134
- raise StandardError, e.to_hash.dig(:Fault, :faultstring)
135
93
  end
136
94
 
137
95
  # Submits a purchase transaction with a previous authorization of funds.
@@ -139,15 +97,8 @@ module Zaala::API
139
97
  ensure_operation_exists(:submit_authorization)
140
98
  raise BadRequestError.new("info operation requires a SubmissionRequest parameter") unless req.is_a?(SubmissionRequest)
141
99
 
142
- res = @kar.call(:submit_authorization) do
143
- message(submissionRequest: req.to_message)
144
- end
100
+ res = call(:submit_authorization, submissionRequest: req.to_message)
145
101
  SubmissionResponse.from_message(res.body[:submitAuthorizationResponse][:return])
146
- rescue Savon::SOAPFault => e
147
- # Extract bad request errors
148
- maybe_raise_invalid_fields(e.to_hash[:Fault])
149
- # Fallback to standard errro
150
- raise StandardError, e.to_hash.dig(:Fault, :faultstring)
151
102
  end
152
103
 
153
104
  # Authorizes a credit transaction.
@@ -158,6 +109,24 @@ module Zaala::API
158
109
 
159
110
  private
160
111
 
112
+ def call(request, attributes)
113
+ @kar.call(request) do
114
+ message(attributes)
115
+ end
116
+ rescue Savon::SOAPFault => e
117
+ # Extract permission errors
118
+ maybe_raise_authentication_error(e.to_hash[:Fault])
119
+ # Extract bad request errors
120
+ maybe_raise_invalid_fields(e.to_hash[:Fault])
121
+ # Fallback to standard errors
122
+ raise StandardError, e.to_hash.dig(:Fault, :faultstring)
123
+ end
124
+
125
+ def maybe_raise_authentication_error(fault)
126
+ code = fault.dig(:detail, :serverFaultMessage, :code)
127
+ raise PermissionError.new(fault[:faultstring]) if code == 'IS0003'
128
+ end
129
+
161
130
  def maybe_raise_invalid_fields(fault)
162
131
  fields = fault.dig(:detail, :invalidFieldsFaultMessage, :invalidFields)
163
132
  fields = [fields] if fields.kind_of?(Hash)
@@ -470,9 +470,6 @@ module Zaala::API
470
470
  # The content of the attachment (base64 encoded).
471
471
  attribute :value, Types::Strict::String
472
472
 
473
- def from_file
474
- end
475
-
476
473
  def self.from_message(h)
477
474
  Attachment.new({
478
475
  name: h[:name],
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zaala
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denteo AG
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-12 00:00:00.000000000 Z
11
+ date: 2021-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-types