@@ -2,8 +2,57 @@ module TransferwiseClient
22 # Create quote
33 class Client
44 def self . connect ( auth_key )
5- @auth_key = auth_key
6- HttpRequest . new
5+ http_request = HttpRequest . new ( auth_key )
6+ profile_request = ProfileRequest . new
7+ http_response = http_request . send_get_request ( profile_request )
8+ profile_response = Response . new ( http_response ) . response
9+ raise 'Cannot connect' if profile_response . empty?
10+
11+ TransferwiseClient ::Client . new ( auth_key , profile_response )
12+ end
13+
14+ attr_reader :profiles
15+
16+ def initialize ( auth_key , profiles )
17+ @profiles = profiles
18+ @http_request = HttpRequest . new ( auth_key )
19+ end
20+
21+ def create_account ( profile_id , currency , account_holder_name , type , details )
22+ account_request = AccountRequest . new ( profile_id , currency , account_holder_name , type , details )
23+ return nil unless account_request . valid?
24+
25+ transferwise_response = @http_request . send_request ( account_request )
26+ Account . new ( Response . new ( transferwise_response ) . response . to_h )
27+ end
28+
29+ def create_quote ( profile_id , source , target , target_amount )
30+ quote_request = QuoteRequest . new ( profile_id , source , target , target_amount )
31+ return nil unless quote_request . valid?
32+
33+ transferwise_response = @http_request . send_request ( quote_request )
34+ Quote . new ( Response . new ( transferwise_response ) . response . to_h )
35+ end
36+
37+ def create_transfer ( quote_id , target_account_id , customer_transaction_id , reference )
38+ transfer_request = TransferRequest . new ( quote_id , target_account_id , customer_transaction_id ,
39+ reference )
40+ return nil unless transfer_request . valid?
41+
42+ transferwise_response = @http_request . send_request ( transfer_request )
43+ Transfer . new ( Response . new ( transferwise_response ) . response . to_h )
44+ end
45+
46+ def member_reference ( quote_id )
47+ quote_pay_method_request = QuotePayMethodRequest . new ( quote_id )
48+ transferwise_response = @http_request . send_get_request ( quote_pay_method_request )
49+ Response . new ( transferwise_response ) . response [ 0 ] . details [ 'payInReference' ] . split ( ' ' ) [ 1 ]
50+ end
51+
52+ def payment_details ( quote_id )
53+ transferwise_response = @http_request . get_request ( "quotes/#{ quote_id } " )
54+ quote = Quote . new ( Response . new ( transferwise_response ) . response . to_h )
55+ BANK_DETAILS [ quote . source ] . merge ( 'sourceAmount' => quote . sourceAmount )
756 end
857 end
958end
0 commit comments