eway_rapid 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.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.travis.yml +11 -0
  4. data/CHANGELOG.md +7 -0
  5. data/Gemfile +2 -0
  6. data/LICENSE.md +21 -0
  7. data/README.md +96 -0
  8. data/Rakefile +14 -0
  9. data/eway_rapid.gemspec +26 -0
  10. data/lib/eway_rapid.rb +78 -0
  11. data/lib/eway_rapid/constants.rb +126 -0
  12. data/lib/eway_rapid/entities/cancel_authorisation_request.rb +9 -0
  13. data/lib/eway_rapid/entities/cancel_authorisation_response.rb +34 -0
  14. data/lib/eway_rapid/entities/capture_payment_request.rb +11 -0
  15. data/lib/eway_rapid/entities/capture_payment_response.rb +34 -0
  16. data/lib/eway_rapid/entities/create_access_code_request.rb +35 -0
  17. data/lib/eway_rapid/entities/create_access_code_response.rb +128 -0
  18. data/lib/eway_rapid/entities/create_access_code_shared_request.rb +53 -0
  19. data/lib/eway_rapid/entities/create_access_code_shared_response.rb +40 -0
  20. data/lib/eway_rapid/entities/create_customer_response.rb +8 -0
  21. data/lib/eway_rapid/entities/direct_customer_search_request.rb +9 -0
  22. data/lib/eway_rapid/entities/direct_customer_search_response.rb +23 -0
  23. data/lib/eway_rapid/entities/direct_payment_request.rb +29 -0
  24. data/lib/eway_rapid/entities/direct_payment_response.rb +58 -0
  25. data/lib/eway_rapid/entities/direct_refund_request.rb +26 -0
  26. data/lib/eway_rapid/entities/direct_refund_response.rb +44 -0
  27. data/lib/eway_rapid/entities/transaction_search_response.rb +23 -0
  28. data/lib/eway_rapid/exceptions.rb +51 -0
  29. data/lib/eway_rapid/message/convert/customer_to_internal_customer.rb +70 -0
  30. data/lib/eway_rapid/message/convert/direct_payment_to_trans_status.rb +47 -0
  31. data/lib/eway_rapid/message/convert/direct_refund_to_trans_status.rb +33 -0
  32. data/lib/eway_rapid/message/convert/internal_customer_to_customer.rb +41 -0
  33. data/lib/eway_rapid/message/convert/internal_trans_to_trans.rb +62 -0
  34. data/lib/eway_rapid/message/convert/internal_transaction_to_address.rb +27 -0
  35. data/lib/eway_rapid/message/convert/internal_transaction_to_status.rb +55 -0
  36. data/lib/eway_rapid/message/convert/payment_to_payment_details.rb +25 -0
  37. data/lib/eway_rapid/message/convert/request/refund_to_direct_refund_req.rb +41 -0
  38. data/lib/eway_rapid/message/convert/request/transaction_to_capture_payment.rb +28 -0
  39. data/lib/eway_rapid/message/convert/request/transaction_to_create_access_code_request.rb +58 -0
  40. data/lib/eway_rapid/message/convert/request/transaction_to_create_access_code_shared_request.rb +54 -0
  41. data/lib/eway_rapid/message/convert/request/transaction_to_direct_payment.rb +45 -0
  42. data/lib/eway_rapid/message/convert/response/access_code_shared_to_create_cust.rb +23 -0
  43. data/lib/eway_rapid/message/convert/response/access_code_shared_to_create_trans.rb +28 -0
  44. data/lib/eway_rapid/message/convert/response/access_code_to_create_cust.rb +24 -0
  45. data/lib/eway_rapid/message/convert/response/access_code_to_create_trans.rb +27 -0
  46. data/lib/eway_rapid/message/convert/response/cancel_authorisation_to_refund.rb +37 -0
  47. data/lib/eway_rapid/message/convert/response/capture_payment_to_create_transaction.rb +43 -0
  48. data/lib/eway_rapid/message/convert/response/direct_customer_to_query_customer.rb +55 -0
  49. data/lib/eway_rapid/message/convert/response/direct_payment_to_create_cust.rb +23 -0
  50. data/lib/eway_rapid/message/convert/response/direct_payment_to_create_trans.rb +32 -0
  51. data/lib/eway_rapid/message/convert/response/direct_refund_to_refund_response.rb +28 -0
  52. data/lib/eway_rapid/message/convert/response/search_to_query_trans.rb +30 -0
  53. data/lib/eway_rapid/message/convert/shipping_details_to_address.rb +35 -0
  54. data/lib/eway_rapid/message/convert/transaction_shipping_address.rb +37 -0
  55. data/lib/eway_rapid/message/convert/transaction_to_arr_line_item.rb +14 -0
  56. data/lib/eway_rapid/message/convert/transaction_to_arr_option.rb +25 -0
  57. data/lib/eway_rapid/message/convert/transaction_to_payment.rb +29 -0
  58. data/lib/eway_rapid/message/convert/verification_to_verification_result.rb +33 -0
  59. data/lib/eway_rapid/message/process/customer_process.rb +255 -0
  60. data/lib/eway_rapid/message/process/refund_process.rb +76 -0
  61. data/lib/eway_rapid/message/process/rest_process.rb +87 -0
  62. data/lib/eway_rapid/message/process/transaction_process.rb +139 -0
  63. data/lib/eway_rapid/models/enums.rb +126 -0
  64. data/lib/eway_rapid/models/internal_models.rb +431 -0
  65. data/lib/eway_rapid/models/models.rb +334 -0
  66. data/lib/eway_rapid/output/create_transaction_response.rb +24 -0
  67. data/lib/eway_rapid/output/query_customer_response.rb +25 -0
  68. data/lib/eway_rapid/output/query_transaction_response.rb +16 -0
  69. data/lib/eway_rapid/output/refund_response.rb +9 -0
  70. data/lib/eway_rapid/output/response_output.rb +14 -0
  71. data/lib/eway_rapid/rapid_client.rb +444 -0
  72. data/lib/eway_rapid/rapid_logger.rb +40 -0
  73. data/lib/eway_rapid/resources/err_code_resource_en.yml +237 -0
  74. data/lib/eway_rapid/resources/rapid-api.yml +4 -0
  75. data/lib/eway_rapid/version.rb +3 -0
  76. metadata +201 -0
@@ -0,0 +1,55 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectCustomerToQueryCustomer
6
+
7
+ # @param [DirectCustomerSearchResponse] response
8
+ # @return [QueryCustomerResponse]
9
+ def do_convert(response)
10
+ result = QueryCustomerResponse.new
11
+ if response
12
+ result.errors = response.errors.split(/\s*,\s*/) if response.errors
13
+
14
+ # @type [Array]
15
+ list_customer = response.customers
16
+ if list_customer && list_customer.length > 0
17
+ list_customer.each do |cust|
18
+ result.reference = cust.reference
19
+ result.title = cust.title
20
+ result.first_name = cust.first_name
21
+ result.last_name = cust.last_name
22
+ result.company_name = cust.company_name
23
+ result.job_description = cust.job_description
24
+
25
+ # @type [String]
26
+ street = cust.street1
27
+ if street && street.strip
28
+ arr = street.split(',', 2)
29
+ result.street1 = street.split(',', 2).first
30
+ result.street2 = street.split(',', 2).last if arr.length > 1
31
+ end
32
+
33
+ result.token_customer_id = cust.token_customer_id
34
+ result.city = cust.city
35
+ result.state = cust.state
36
+ result.postal_code = cust.postal_code
37
+ result.phone = cust.phone
38
+ result.mobile = cust.mobile
39
+ result.email = cust.email
40
+ result.url = cust.url
41
+ result.card_detail = cust.card_details
42
+ result.country = cust.country
43
+ result.comments = cust.comments
44
+ result.fax = cust.fax
45
+ result
46
+ end
47
+ end
48
+ end
49
+ result
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,23 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectPaymentToCreateCust
6
+
7
+ # @param [DirectPaymentResponse] response
8
+ # @return [CreateCustomerResponse]
9
+ def do_convert(response)
10
+ customer_response = CreateCustomerResponse.new
11
+ cust_convert = InternalCustomerToCustomer.new
12
+
13
+ customer_response.customer = cust_convert.do_convert(response.customer)
14
+
15
+ customer_response.errors = response.errors.split(/\s*,\s*/) if response.errors
16
+
17
+ customer_response
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectPaymentToCreateTrans
6
+
7
+ # @param [DirectPaymentResponse] response
8
+ # @return [CreateTransactionResponse]
9
+ def do_convert(response)
10
+ transaction_response = CreateTransactionResponse.new
11
+ transaction = Models::Transaction.new
12
+
13
+ transaction.transaction_type = response.transaction_type
14
+
15
+ payment_converter = PaymentToPaymentDetails.new
16
+ transaction.payment_details = payment_converter.do_convert(response.payment)
17
+
18
+ cust_convert = InternalCustomerToCustomer.new
19
+ transaction.customer = cust_convert.do_convert(response.customer)
20
+
21
+ transaction_response.transaction = transaction
22
+ transaction_response.errors = response.errors.split(/\s*,\s*/) if response.errors
23
+
24
+ status_convert = DirectPaymentToTransStatus.new
25
+ transaction_response.transaction_status = status_convert.do_convert(response)
26
+ transaction_response
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,28 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class DirectRefundToRefundResponse
6
+
7
+ # @param [DirectRefundResponse] response
8
+ # @return [RefundResponse]
9
+ def do_convert(response)
10
+ refund = Models::Refund.new
11
+ refund.refund_details = response.refund
12
+
13
+ cust_convert = InternalCustomerToCustomer.new
14
+ refund.customer = cust_convert.do_convert(response.customer)
15
+
16
+ refund_response = RefundResponse.new
17
+ refund_response.errors = response.errors.split(/\s*,\s*/) if response.errors
18
+ refund_response.refund = refund
19
+
20
+ trans_status_convert = DirectRefundToTransStatus.new
21
+ refund_response.transaction_status = trans_status_convert.do_convert(response)
22
+ refund_response
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ module Response
5
+ class SearchToQueryTrans
6
+
7
+ # @param [TransactionSearchResponse] response
8
+ # @return [QueryTransactionResponse]
9
+ def do_convert(response)
10
+ query_transaction_response = QueryTransactionResponse.new
11
+
12
+ if response.transactions && response.transactions.length > 0
13
+ trans_convert = InternalTransToTrans.new
14
+ query_transaction_response.transaction = trans_convert.do_convert(response.transactions[0])
15
+ end
16
+
17
+ query_transaction_response.errors = response.error.split(/\s*,\s*/) if response.error
18
+
19
+ status_convert = InternalTransactionToStatus.new
20
+ if response.transactions && response.transactions.length > 0
21
+ query_transaction_response.transaction_status = status_convert.do_convert(response.transactions[0])
22
+ end
23
+
24
+ query_transaction_response
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class ShippingDetailsToAddress
5
+
6
+ # @param [Models::ShippingDetails] detail
7
+ # @return [InternalModels::ShippingAddress]
8
+ def do_convert(detail)
9
+ address = InternalModels::ShippingAddress.new
10
+
11
+ if detail
12
+ # @type [InternalModels::ShippingAddress]
13
+ add = detail.shipping_address
14
+
15
+ if add
16
+ address.city = add.city
17
+ address.country = add.country
18
+ address.state = add.state
19
+ address.street1 = add.street1
20
+ address.street2 = add.street2
21
+ address.postal_code = add.postal_code
22
+ end
23
+
24
+ address.first_name = detail.first_name
25
+ address.last_name = detail.last_name
26
+ address.phone = detail.phone
27
+ address.fax = detail.fax
28
+ address.shipping_method = detail.shipping_method || ''
29
+ end
30
+ address
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,37 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionShippingAddress
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [InternalModels::ShippingAddress]
8
+ def do_convert(transaction)
9
+ shipping_address = InternalModels::ShippingAddress.new
10
+
11
+ # @type [Models::ShippingDetails]
12
+ detail = transaction.shipping_details
13
+ if detail
14
+ shipping_address.first_name = detail.first_name
15
+ shipping_address.last_name = detail.last_name
16
+ shipping_address.shipping_method = detail.shipping_method
17
+ shipping_address.email = detail.email
18
+ shipping_address.phone = detail.phone
19
+ shipping_address.fax = detail.fax
20
+
21
+ # @type [Models::Address]
22
+ address = detail.shipping_address
23
+ if address
24
+ shipping_address.city = address.city
25
+ shipping_address.country = address.country
26
+ shipping_address.postal_code = address.postal_code
27
+ shipping_address.state = address.state
28
+ shipping_address.street1 = address.street1
29
+ shipping_address.street2 = address.street2
30
+ end
31
+ end
32
+ shipping_address
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,14 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionToArrLineItem
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [Array]
8
+ def do_convert(transaction)
9
+ transaction.line_items || []
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionToArrOption
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [Array]
8
+ def do_convert(transaction)
9
+ if transaction.options
10
+ list_option = Array.new
11
+
12
+ transaction.options.each do |opt|
13
+ option = InternalModels::Option.new
14
+ option.value = opt
15
+ list_option.push(option)
16
+ end
17
+ list_option
18
+ else
19
+ Array.new(3)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,29 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class TransactionToPayment
5
+
6
+ # @param [Models::Transaction] transaction
7
+ # @return [InternalModels::Payment]
8
+ def do_convert(transaction)
9
+ payment = InternalModels::Payment.new
10
+
11
+ # @type [Models::PaymentDetails]
12
+ payment_details = transaction.payment_details
13
+
14
+ if payment_details
15
+ payment.currency_code = payment_details.currency_code
16
+ payment.invoice_description = payment_details.invoice_description
17
+ payment.invoice_number = payment_details.invoice_number
18
+ payment.invoice_reference = payment_details.invoice_reference
19
+ payment.total_amount = payment_details.total_amount
20
+ else
21
+ payment.total_amount = 0
22
+ end
23
+
24
+ payment
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,33 @@
1
+ module EwayRapid
2
+ module Message
3
+ module Convert
4
+ class VerificationToVerificationResult
5
+
6
+ # @param [InternalModels::Verification] verification
7
+ def do_convert(verification)
8
+ result = Models::VerificationResult.new
9
+
10
+ if verification
11
+ result.address = get_verify_status(verification.address)
12
+ result.cvn = get_verify_status(verification.cvn)
13
+ result.email = get_verify_status(verification.email)
14
+ result.mobile = get_verify_status(verification.mobile)
15
+ result.phone = get_verify_status(verification.mobile)
16
+ end
17
+ result
18
+ end
19
+
20
+ # @param [String] status
21
+ # @return [String]
22
+ def get_verify_status(status)
23
+ begin
24
+ index = Integer(status)
25
+ Enums::VerifyStatus.calculate_status(index)
26
+ rescue StandardError
27
+ return nil
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,255 @@
1
+ module EwayRapid
2
+ module Message
3
+ module CustomerProcess
4
+
5
+ # Create customer with direct payment method message process
6
+ class CustDirectPaymentMsgProcess
7
+ include RestProcess
8
+
9
+ # @param [Models::Customer] input
10
+ # @return [DirectPaymentRequest]
11
+ def self.create_request(input)
12
+ request = DirectPaymentRequest.new
13
+ convert = Convert::CustomerToInternalCustomer.new(false)
14
+ request.customer = convert.do_convert(input)
15
+ request.customer_ip = input.customer_device_ip
16
+ request.method = Constants::CREATE_TOKEN_CUSTOMER_METHOD
17
+ request.transaction_type = Enums::TransactionType::PURCHASE
18
+ request
19
+ end
20
+
21
+ # @param [String] url
22
+ # @param [String] api_key
23
+ # @param [String] password
24
+ # @param [DirectPaymentRequest] request
25
+ # @return [String]
26
+ def self.send_request(url, api_key, password, request)
27
+ begin
28
+ CustDirectPaymentMsgProcess.new.do_post(url, api_key, password, request)
29
+ rescue SocketError => e
30
+ raise Exceptions::CommunicationFailureException.new(e.message)
31
+ rescue RestClient::Exception => e
32
+ if e.http_code == 401 || e.http_code == 403 || e.http_code == 404
33
+ raise Exceptions::AuthenticationFailureException.new(e.message)
34
+ else
35
+ raise Exceptions::SystemErrorException.new(e.message)
36
+ end
37
+ end
38
+ end
39
+
40
+ # @param [String] response
41
+ # @return [CreateCustomerResponse]
42
+ def self.make_result(response)
43
+ direct_payment_response = DirectPaymentResponse.from_json(response)
44
+ convert = Convert::Response::DirectPaymentToCreateCust.new
45
+ convert.do_convert(direct_payment_response)
46
+ end
47
+ end
48
+
49
+ # Create customer with responsive shared method message process
50
+ class CustResponsiveSharedMsgProcess
51
+ include RestProcess
52
+
53
+ # @param [Models::Customer] input
54
+ # @return [CreateAccessCodeSharedRequest]
55
+ def self.create_request(input)
56
+ request = CreateAccessCodeSharedRequest.new
57
+ convert = Convert::CustomerToInternalCustomer.new(false)
58
+ request.customer = convert.do_convert(input)
59
+ request.method = Constants::CREATE_TOKEN_CUSTOMER_METHOD
60
+ request.transaction_type = Enums::TransactionType::PURCHASE
61
+ request.redirect_url = input.redirect_url
62
+ request.cancel_url = input.cancel_url
63
+ request
64
+ end
65
+
66
+ # @param [String] url
67
+ # @param [String] api_key
68
+ # @param [String] password
69
+ # @param [CreateAccessCodeSharedRequest] request
70
+ # @return [String]
71
+ def self.send_request(url, api_key, password, request)
72
+ CustResponsiveSharedMsgProcess.new.do_post(url, api_key, password, request)
73
+ end
74
+
75
+ # @param [String] response
76
+ # @return [CreateCustomerResponse]
77
+ def self.make_result(response)
78
+ code_shared_response = CreateAccessCodeSharedResponse.from_json(response)
79
+ convert = Convert::Response::AccessCodeSharedToCreateCust.new
80
+ convert.do_convert(code_shared_response)
81
+ end
82
+ end
83
+
84
+ # Create customer with transparent redirect message process
85
+ class CustTransparentRedirectMsgProcess
86
+ include RestProcess
87
+
88
+ # @param [Models::Customer] input
89
+ # @return [CreateAccessCodeRequest]
90
+ def self.create_request(input)
91
+ request = CreateAccessCodeRequest.new
92
+ convert = Convert::CustomerToInternalCustomer.new(false)
93
+ request.customer = convert.do_convert(input)
94
+ request.method = Constants::CREATE_TOKEN_CUSTOMER_METHOD
95
+ request.transaction_type = Enums::TransactionType::PURCHASE
96
+ request.redirect_url = input.redirect_url
97
+ request
98
+ end
99
+
100
+ # @param [String] url
101
+ # @param [String] api_key
102
+ # @param [String] password
103
+ # @param [CreateAccessCodeRequest] request
104
+ # @return [String]
105
+ def self.send_request(url, api_key, password, request)
106
+ CustTransparentRedirectMsgProcess.new.do_post(url, api_key, password, request)
107
+ end
108
+
109
+ # @param [String] response
110
+ # @return [CreateCustomerResponse]
111
+ def self.make_result(response)
112
+ access_code_response = CreateAccessCodeResponse.from_json(response)
113
+ convert = Convert::Response::AccessCodeToCreateCust.new
114
+ convert.do_convert(access_code_response)
115
+ end
116
+ end
117
+
118
+ # Query customer message process
119
+ class QueryCustomerMsgProcess
120
+ include RestProcess
121
+
122
+ # @param [String] token_customer_id
123
+ # @return [DirectCustomerSearchRequest]
124
+ def self.create_request(token_customer_id)
125
+ request = DirectCustomerSearchRequest.new
126
+ request.token_customer_id = token_customer_id
127
+ request
128
+ end
129
+
130
+ # @param [DirectCustomerSearchRequest] request
131
+ # @return [String]
132
+ def self.send_request(url, api_key, password, request)
133
+ QueryCustomerMsgProcess.new.do_post(url, api_key, password, request)
134
+ end
135
+
136
+ # @param [String] response
137
+ # @return [DirectCustomerSearchResponse]
138
+ def self.make_result(response)
139
+ direct_customer_response = DirectCustomerSearchResponse.from_json(response)
140
+ converter = Convert::Response::DirectCustomerToQueryCustomer.new
141
+ converter.do_convert(direct_customer_response)
142
+ end
143
+ end
144
+
145
+ # Create customer with direct payment method message process
146
+ class CustDirectUpdateMsgProcess
147
+ include RestProcess
148
+
149
+ # @param [Models::Customer] input
150
+ # @return [DirectPaymentRequest]
151
+ def self.create_request(input)
152
+ request = DirectPaymentRequest.new
153
+ converter = Convert::CustomerToInternalCustomer.new
154
+ payment = InternalModels::Payment.new
155
+ payment.total_amount = 0
156
+ request.payment = payment
157
+ request.customer = converter.do_convert(input)
158
+ request.customer_ip = input.customer_device_ip
159
+ request.method = Constants::UPDATE_TOKEN_CUSTOMER_METHOD
160
+ request.transaction_type = Enums::TransactionType::PURCHASE
161
+ request
162
+ end
163
+
164
+ # @param [String] url
165
+ # @param [String] api_key
166
+ # @param [String] password
167
+ # @param [DirectPaymentRequest] request
168
+ def self.send_request(url, api_key, password, request)
169
+ CustDirectUpdateMsgProcess.new.do_post(url, api_key, password, request)
170
+ end
171
+
172
+ # @param [String] response
173
+ # @return [CreateCustomerResponse]
174
+ def self.make_result(response)
175
+ direct_response = DirectPaymentResponse.from_json(response)
176
+ converter = Convert::Response::DirectPaymentToCreateCust.new
177
+ converter.do_convert(direct_response)
178
+ end
179
+ end
180
+
181
+ # Create customer with responsive shared method message process
182
+ class CustResponsiveUpdateMsgProcess
183
+ include RestProcess
184
+
185
+ # @param [Models::Customer] input
186
+ # @return [CreateAccessCodeSharedRequest]
187
+ def self.create_request(input)
188
+ request = CreateAccessCodeSharedRequest.new
189
+ converter = Convert::CustomerToInternalCustomer.new
190
+ payment = InternalModels::Payment.new
191
+ payment.total_amount = 0
192
+ request.payment = payment
193
+ request.customer = converter.do_convert(input)
194
+ request.method = Constants::UPDATE_TOKEN_CUSTOMER_METHOD
195
+ request.transaction_type = Enums::TransactionType::PURCHASE
196
+ request.redirect_url = input.redirect_url
197
+ request.cancel_url = input.cancel_url
198
+ request
199
+ end
200
+
201
+ # @param [String] url
202
+ # @param [String] api_key
203
+ # @param [String] password
204
+ # @param [CreateAccessCodeSharedRequest] request
205
+ def self.send_request(url, api_key, password, request)
206
+ CustResponsiveUpdateMsgProcess.new.do_post(url, api_key, password, request)
207
+ end
208
+
209
+ # @param [String] response
210
+ # @return [CreateCustomerResponse]
211
+ def self.make_result(response)
212
+ shared_response = CreateAccessCodeSharedResponse.from_json(response)
213
+ converter = Convert::Response::AccessCodeSharedToCreateCust.new
214
+ converter.do_convert(shared_response)
215
+ end
216
+ end
217
+
218
+ # Create customer with transparent redirect message process
219
+ class CustTransparentUpdateMsgProcess
220
+ include RestProcess
221
+
222
+ # @param [Models::Customer] input
223
+ # @return [CreateAccessCodeRequest]
224
+ def self.create_request(input)
225
+ request = CreateAccessCodeRequest.new
226
+ converter = Convert::CustomerToInternalCustomer.new
227
+ payment = InternalModels::Payment.new
228
+ payment.total_amount = 0
229
+ request.payment = payment
230
+ request.customer = converter.do_convert(input)
231
+ request.method = Constants::UPDATE_TOKEN_CUSTOMER_METHOD
232
+ request.transaction_type = Enums::TransactionType::PURCHASE
233
+ request.redirect_url = input.redirect_url
234
+ request
235
+ end
236
+
237
+ # @param [String] url
238
+ # @param [String] api_key
239
+ # @param [String] password
240
+ # @param [CreateAccessCodeRequest] request
241
+ def self.send_request(url, api_key, password, request)
242
+ CustTransparentUpdateMsgProcess.new.do_post(url, api_key, password, request)
243
+ end
244
+
245
+ # @param [String] response
246
+ # @return [CreateCustomerResponse]
247
+ def self.make_result(response)
248
+ access_code_response = CreateAccessCodeResponse.from_json(response)
249
+ converter = Convert::Response::AccessCodeToCreateCust.new
250
+ converter.do_convert(access_code_response)
251
+ end
252
+ end
253
+ end
254
+ end
255
+ end