corepro 0.0.4
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.
- data/.gitignore +16 -0
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/corepro-sdk-ruby.iml +67 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/misc.xml +5 -0
- data/.idea/modules.xml +9 -0
- data/.idea/scopes/scope_settings.xml +5 -0
- data/.idea/vcs.xml +7 -0
- data/CorePro.gemspec +23 -0
- data/Gemfile +15 -0
- data/LICENSE +21 -0
- data/README.md +47 -0
- data/Rakefile +2 -0
- data/config-sample.yml +3 -0
- data/lib/CorePro/Models/account_id_only.rb +8 -0
- data/lib/CorePro/Models/api_error.rb +14 -0
- data/lib/CorePro/Models/customer_address.rb +17 -0
- data/lib/CorePro/Models/customer_answer.rb +9 -0
- data/lib/CorePro/Models/customer_id_only.rb +8 -0
- data/lib/CorePro/Models/customer_message.rb +10 -0
- data/lib/CorePro/Models/customer_phone.rb +11 -0
- data/lib/CorePro/Models/customer_question.rb +21 -0
- data/lib/CorePro/Models/customer_response.rb +27 -0
- data/lib/CorePro/Models/customer_verify_request.rb +29 -0
- data/lib/CorePro/Models/envelope.rb +37 -0
- data/lib/CorePro/Models/external_account_id_only.rb +8 -0
- data/lib/CorePro/Models/external_account_verify.rb +13 -0
- data/lib/CorePro/Models/file_content.rb +10 -0
- data/lib/CorePro/Models/json_base.rb +81 -0
- data/lib/CorePro/Models/model_base.rb +16 -0
- data/lib/CorePro/Models/program_interest_rate.rb +13 -0
- data/lib/CorePro/Models/program_limit.rb +12 -0
- data/lib/CorePro/Utils/logger.rb +9 -0
- data/lib/CorePro/Utils/requestor.rb +89 -0
- data/lib/CorePro/account.rb +74 -0
- data/lib/CorePro/account_close.rb +22 -0
- data/lib/CorePro/connection.rb +68 -0
- data/lib/CorePro/core_pro_api_exception.rb +21 -0
- data/lib/CorePro/customer.rb +150 -0
- data/lib/CorePro/customer_beneficiary.rb +55 -0
- data/lib/CorePro/customer_document.rb +34 -0
- data/lib/CorePro/document.rb +23 -0
- data/lib/CorePro/external_account.rb +86 -0
- data/lib/CorePro/external_account_document.rb +36 -0
- data/lib/CorePro/program.rb +58 -0
- data/lib/CorePro/statement.rb +28 -0
- data/lib/CorePro/transaction.rb +40 -0
- data/lib/CorePro/transfer.rb +42 -0
- data/lib/CorePro/version.rb +4 -0
- data/lib/CorePro.rb +14 -0
- data/test/account_test.rb +37 -0
- data/test/core_pro_test_base.rb +10 -0
- data/test/customer_test.rb +46 -0
- metadata +135 -0
@@ -0,0 +1,89 @@
|
|
1
|
+
require_relative '../version'
|
2
|
+
require_relative 'logger'
|
3
|
+
require_relative '../models/envelope'
|
4
|
+
require_relative '../core_pro_api_exception'
|
5
|
+
|
6
|
+
require 'openssl'
|
7
|
+
require 'base64'
|
8
|
+
require 'net/https'
|
9
|
+
require 'uri'
|
10
|
+
require 'json'
|
11
|
+
|
12
|
+
module CorePro
|
13
|
+
module Utils
|
14
|
+
class Requestor
|
15
|
+
|
16
|
+
SDK_USER_AGENT = "CorePro Ruby SDK v #{CorePro::VERSION}"
|
17
|
+
|
18
|
+
def self.get(relativeUrl, classDef, connection, loggingObject)
|
19
|
+
url = "https://#{connection.domainName}/#{relativeUrl}"
|
20
|
+
http = Net::HTTP.new(connection.domainName, 443)
|
21
|
+
http.use_ssl = true
|
22
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
23
|
+
headers = { 'User-Agent' => SDK_USER_AGENT,
|
24
|
+
'Content-Type' => 'application/json; charset=utf-8',
|
25
|
+
'Accept' => 'application/json; charset=utf-8',
|
26
|
+
'Authorization' => connection.headerValue,
|
27
|
+
'Host' => connection.domainName}
|
28
|
+
request = Net::HTTP::Get.new(url, headers)
|
29
|
+
|
30
|
+
response = http.request(request)
|
31
|
+
|
32
|
+
#Logger.write("hi mom", loggingObject)
|
33
|
+
parseResponse(request, response, classDef, connection, loggingObject)
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.post(relativeUrl, classDef, toPost, connection, loggingObject)
|
38
|
+
uri = URI.parse("https://#{connection.domainName}/#{relativeUrl}")
|
39
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
40
|
+
http.use_ssl = true
|
41
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
42
|
+
headers = { 'User-Agent' => SDK_USER_AGENT,
|
43
|
+
'Content-Type' => 'application/json; charset=utf-8',
|
44
|
+
'Accept' => 'application/json; charset=utf-8',
|
45
|
+
'Authorization' => connection.headerValue,
|
46
|
+
'Host' => connection.domainName}
|
47
|
+
request = Net::HTTP::Post.new(uri.request_uri, headers)
|
48
|
+
request.body = toPost.to_json
|
49
|
+
response = http.request(request)
|
50
|
+
|
51
|
+
#Logger.write("hi mom", loggingObject)
|
52
|
+
parseResponse(request, response, classDef, connection, loggingObject)
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.parseResponse(req, resp, classDef, conn, loggingObject)
|
57
|
+
case resp.code
|
58
|
+
when '501'
|
59
|
+
raise 501
|
60
|
+
when '502'
|
61
|
+
raise 502
|
62
|
+
when '503'
|
63
|
+
raise 503
|
64
|
+
when '504'
|
65
|
+
raise 504
|
66
|
+
when '505'
|
67
|
+
raise 505
|
68
|
+
else
|
69
|
+
envelope = CorePro::Models::Envelope.new
|
70
|
+
envelope.rawRequestBody = req.body
|
71
|
+
envelope.rawResponseBody = resp.body
|
72
|
+
parsedJson = JSON.parse(resp.body)
|
73
|
+
envelope.from_json! parsedJson, { 'data' => classDef }
|
74
|
+
if envelope.errors.length > 0
|
75
|
+
raise CorePro::CoreProApiException.new(envelope.errors)
|
76
|
+
else
|
77
|
+
if classDef == NIL
|
78
|
+
# no class definition given, return raw envelope
|
79
|
+
envelope
|
80
|
+
else
|
81
|
+
# class definition given, return just that data
|
82
|
+
envelope.data
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require_relative 'models/model_base'
|
2
|
+
require_relative 'utils/requestor'
|
3
|
+
require_relative 'models/account_id_only'
|
4
|
+
require_relative 'connection'
|
5
|
+
|
6
|
+
module CorePro
|
7
|
+
class Account < Models::ModelBase
|
8
|
+
|
9
|
+
attr_accessor :customerId
|
10
|
+
attr_accessor :accountId
|
11
|
+
attr_accessor :name
|
12
|
+
attr_accessor :accountNumber
|
13
|
+
attr_accessor :accountNumberMasked
|
14
|
+
attr_accessor :status
|
15
|
+
attr_accessor :type
|
16
|
+
attr_accessor :createdDate
|
17
|
+
attr_accessor :closedDate
|
18
|
+
attr_accessor :availableBalance
|
19
|
+
attr_accessor :accountBalance
|
20
|
+
attr_accessor :isPrimary
|
21
|
+
attr_accessor :isCloseable
|
22
|
+
attr_accessor :routingNumber
|
23
|
+
attr_accessor :targetAmount
|
24
|
+
attr_accessor :targetDate
|
25
|
+
attr_accessor :category
|
26
|
+
attr_accessor :subCategory
|
27
|
+
attr_accessor :tag
|
28
|
+
attr_accessor :miscellaneous
|
29
|
+
attr_accessor :recurringContributionType
|
30
|
+
attr_accessor :recurringContributionAmount
|
31
|
+
attr_accessor :recurringContributionFromExternalAccountId
|
32
|
+
attr_accessor :recurringContributionStartDate
|
33
|
+
attr_accessor :recurringContributionEndDate
|
34
|
+
attr_accessor :recurringContributionNextDate
|
35
|
+
|
36
|
+
def initialize()
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.list(customerId, connection = nil, loggingObject = nil)
|
40
|
+
connection ||= Connection.createFromConfig()
|
41
|
+
CorePro::Utils::Requestor.get("/account/list/#{customerId}", Account, connection, loggingObject)
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.get(customerId, accountId, connection = nil, loggingObject = nil)
|
45
|
+
connection ||= Connection.createFromConfig()
|
46
|
+
CorePro::Utils::Requestor.get("/account/get/#{customerId}/#{accountId}", Account, connection, loggingObject)
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.getByTag(customerId, tag, connection = nil, loggingObject = nil)
|
50
|
+
connection ||= Connection.createFromConfig()
|
51
|
+
CorePro::Utils::Requestor.get("/account/getByTag/#{customerId}/#{tag}", Account, connection, loggingObject)
|
52
|
+
end
|
53
|
+
|
54
|
+
def create(connection = nil, loggingObject = nil)
|
55
|
+
connection ||= Connection.createFromConfig()
|
56
|
+
aid = CorePro::Utils::Requestor.post('/account/create', CorePro::Models::AccountIdOnly, self, connection, loggingObject)
|
57
|
+
aid.accountId
|
58
|
+
end
|
59
|
+
|
60
|
+
def update(connection = nil, loggingObject = nil)
|
61
|
+
connection ||= Connection.createFromConfig()
|
62
|
+
CorePro::Utils::Requestor.post('/account/update', nil, self, connection, loggingObject)
|
63
|
+
true
|
64
|
+
end
|
65
|
+
|
66
|
+
def close(closeToAccountId, transactionTag, connection = nil, loggingObject = nil)
|
67
|
+
ac = CorePro::AccountClose.new
|
68
|
+
ac.closeToAccountId = closeToAccountId
|
69
|
+
ac.transactionTag = transactionTag
|
70
|
+
ac.close(connection, loggingObject)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative 'models/model_base'
|
2
|
+
require_relative 'utils/requestor'
|
3
|
+
|
4
|
+
module CorePro
|
5
|
+
class AccountClose < Models::ModelBase
|
6
|
+
attr_accessor :customerId
|
7
|
+
attr_accessor :accountId
|
8
|
+
attr_accessor :closeToAccountId
|
9
|
+
attr_accessor :transactionId
|
10
|
+
attr_accessor :transactionTag
|
11
|
+
attr_accessor :closingBalanceAmount
|
12
|
+
attr_accessor :interestPaidAmount
|
13
|
+
attr_accessor :backupWithholdingAmount
|
14
|
+
attr_accessor :totalClosingAmount
|
15
|
+
attr_accessor :isClosedToExternalAccount
|
16
|
+
|
17
|
+
def close(connection = nil, loggingObject = nil)
|
18
|
+
connection ||= Connection.createFromConfig()
|
19
|
+
CorePro::Utils::Requestor.post('/account/close', AccountClose, self, connection, loggingObject)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'base64'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
module CorePro
|
5
|
+
class Connection
|
6
|
+
|
7
|
+
@@config = begin
|
8
|
+
YAML.load(File.open('config.yml'))
|
9
|
+
rescue ArgumentError => e
|
10
|
+
puts "Could not parse YAML: #{e.message}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.createFromConfig(apiKey = nil, apiSecret = nil, domainName = nil)
|
14
|
+
c = Connection.new
|
15
|
+
c.apiKey = apiKey || @@config['CoreProApiKey']
|
16
|
+
c.apiSecret = apiSecret || @@config['CoreProApiSecret']
|
17
|
+
c.domainName = domainName || @@config['CoreProDomainName']
|
18
|
+
c
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(apiKey = nil, apiSecret = nil, domainName = nil)
|
22
|
+
@apiKey = apiKey || @@config['CoreProApiKey']
|
23
|
+
@apiSecret = apiSecret || @@config['CoreProApiSecret']
|
24
|
+
@domainName = domainName || @@config['CoreProDomainName']
|
25
|
+
@headerValue = ''
|
26
|
+
end
|
27
|
+
|
28
|
+
def apiKey
|
29
|
+
@apiKey
|
30
|
+
end
|
31
|
+
|
32
|
+
def apiKey=(value)
|
33
|
+
@apiKey = value
|
34
|
+
@headerValue = ''
|
35
|
+
end
|
36
|
+
|
37
|
+
def apiSecret
|
38
|
+
@apiSecret
|
39
|
+
end
|
40
|
+
|
41
|
+
def apiSecret=(value)
|
42
|
+
@apiSecret = value
|
43
|
+
@headerValue = ''
|
44
|
+
end
|
45
|
+
|
46
|
+
def headerValue
|
47
|
+
if (@headerValue || '' == '')
|
48
|
+
utf8Value = "#{@apiKey}:#{@apiSecret}".force_encoding('iso-8859-1').encode('utf-8')
|
49
|
+
b64 = Base64.encode64(utf8Value)
|
50
|
+
@headerValue = "Basic #{b64}"
|
51
|
+
end
|
52
|
+
@headerValue
|
53
|
+
end
|
54
|
+
|
55
|
+
def domainName
|
56
|
+
@domainName
|
57
|
+
end
|
58
|
+
|
59
|
+
def domainName=(value)
|
60
|
+
value.gsub! 'https://', ''
|
61
|
+
value.gsub! 'http://', ''
|
62
|
+
value.gsub! 'www.', ''
|
63
|
+
|
64
|
+
@domainName = value.split('/')[0]
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module CorePro
|
2
|
+
class CoreProApiException < StandardError
|
3
|
+
def initialize(errors)
|
4
|
+
@errors = errors
|
5
|
+
end
|
6
|
+
|
7
|
+
attr_accessor :errors
|
8
|
+
|
9
|
+
def firstMessage
|
10
|
+
@errors[0].message
|
11
|
+
end
|
12
|
+
|
13
|
+
def firstCode
|
14
|
+
@errors[0].code
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_s
|
18
|
+
"#{@errors[0]}. See errors collection for more information."
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
require_relative 'models/model_base'
|
2
|
+
require_relative 'connection'
|
3
|
+
require_relative 'models/customer_verify_request'
|
4
|
+
require_relative 'models/customer_response'
|
5
|
+
require_relative 'models/customer_id_only'
|
6
|
+
require_relative 'models/customer_phone'
|
7
|
+
require_relative 'models/customer_address'
|
8
|
+
require_relative 'account'
|
9
|
+
require_relative 'external_account'
|
10
|
+
|
11
|
+
module CorePro
|
12
|
+
class Customer < Models::ModelBase
|
13
|
+
|
14
|
+
attr_accessor :customerCount
|
15
|
+
attr_accessor :customerId
|
16
|
+
attr_accessor :firstName
|
17
|
+
attr_accessor :middleName
|
18
|
+
attr_accessor :lastName
|
19
|
+
attr_accessor :birthDate
|
20
|
+
attr_accessor :gender
|
21
|
+
attr_accessor :culture
|
22
|
+
attr_accessor :tag
|
23
|
+
attr_accessor :status
|
24
|
+
attr_accessor :createdDate
|
25
|
+
attr_accessor :taxId
|
26
|
+
attr_accessor :driversLicenseNumber
|
27
|
+
attr_accessor :driversLicenseState
|
28
|
+
attr_accessor :driversLicenseExpirationDate
|
29
|
+
attr_accessor :passportNumber
|
30
|
+
attr_accessor :passportCountry
|
31
|
+
attr_accessor :emailAddress
|
32
|
+
attr_accessor :isActive
|
33
|
+
attr_accessor :isLocked
|
34
|
+
attr_accessor :lockedDate
|
35
|
+
attr_accessor :lockedReason
|
36
|
+
attr_accessor :isSubjectToBackupWithholding
|
37
|
+
attr_accessor :isOptedInToBankCommunication
|
38
|
+
attr_accessor :isDocumentsAccepted
|
39
|
+
attr_accessor :phones
|
40
|
+
attr_accessor :addresses
|
41
|
+
attr_accessor :deceasedDate
|
42
|
+
attr_accessor :accounts
|
43
|
+
attr_accessor :externalAccounts
|
44
|
+
|
45
|
+
def from_json! json, classDefs
|
46
|
+
classDefs = classDefs || {}
|
47
|
+
classDefs['phones'] = CorePro::Models::CustomerPhone
|
48
|
+
classDefs['addresses'] = CorePro::Models::CustomerAddress
|
49
|
+
classDefs['accounts'] = CorePro::Account
|
50
|
+
classDefs['externalAccounts'] = CorePro::ExternalAccount
|
51
|
+
super json, classDefs
|
52
|
+
end
|
53
|
+
|
54
|
+
def initialize()
|
55
|
+
@phones = []
|
56
|
+
@addresses = []
|
57
|
+
@accounts = []
|
58
|
+
@externalAccount = []
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.list(pageNumber = 0, pageSize = 200, connection = nil, loggingObject = nil)
|
62
|
+
Customer.new.list pageNumber, pageSize, connection, loggingObject
|
63
|
+
end
|
64
|
+
|
65
|
+
def list(pageNumber = 0, pageSize = 200, connection = nil, loggingObject = nil)
|
66
|
+
connection ||= Connection.createFromConfig()
|
67
|
+
CorePro::Utils::Requestor.get("/customer/list?pageNumber=#{pageNumber}&pageSize=#{pageSize}", Customer, connection, loggingObject)
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.get(customerId, connection = nil, loggingObject = nil)
|
71
|
+
c = Customer.new
|
72
|
+
c.customerId = customerId
|
73
|
+
c.get(connection, loggingObject)
|
74
|
+
end
|
75
|
+
|
76
|
+
def get(connection = nil, loggingObject = nil)
|
77
|
+
connection ||= Connection.createFromConfig()
|
78
|
+
CorePro::Utils::Requestor.get("/customer/get/#{self.customerId}", Customer, connection, loggingObject)
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.getByTag(tag, connection = nil, loggingObject = nil)
|
82
|
+
c = Customer.new
|
83
|
+
c.tag = tag
|
84
|
+
c.getByTag(connection, loggingObject)
|
85
|
+
end
|
86
|
+
|
87
|
+
def getByTag(connection = nil, loggingObject = nil)
|
88
|
+
connection ||= Connection.createFromConfig()
|
89
|
+
CorePro::Utils::Requestor.get("/customer/getByTag/#{self.tag}", Customer, connection, loggingObject)
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.search(tag = nil, taxId = nil, passportNumber = nil, driversLicenseNumber = nil, birthDate = nil, emailAddress = nil, lastName = nil, firstName = nil, pageNumber = 0, pageSize = 200, connection = nil, loggingObject = nil)
|
93
|
+
c = Customer.new
|
94
|
+
c.tag = tag
|
95
|
+
c.taxId = taxId
|
96
|
+
c.passportNumber = passportNumber
|
97
|
+
c.driversLicenseNumber = driversLicenseNumber
|
98
|
+
c.birthDate = birthDate
|
99
|
+
c.emailAddress = emailAddress
|
100
|
+
c.lastName = lastName
|
101
|
+
c.firstName = firstName
|
102
|
+
c.search(pageNumber, pageSize, connection, loggingObject)
|
103
|
+
end
|
104
|
+
|
105
|
+
def search(pageNumber = 0, pageSize = 200, connection = nil, loggingObject = nil)
|
106
|
+
connection ||= Connection.createFromConfig()
|
107
|
+
CorePro::Utils::Requestor.post("/customer/search?pageNumber=#{pageNumber}&pageSize=#{pageSize}", Customer, self, connection, loggingObject)
|
108
|
+
end
|
109
|
+
|
110
|
+
def create(connection = nil, loggingObject = nil)
|
111
|
+
connection ||= Connection.createFromConfig()
|
112
|
+
CorePro::Utils::Requestor.post('/customer/create', Customer, self, connection, loggingObject)
|
113
|
+
end
|
114
|
+
|
115
|
+
def update(connection = nil, loggingObject = nil)
|
116
|
+
connection ||= Connection.createFromConfig()
|
117
|
+
CorePro::Utils::Requestor.post('/customer/update', CorePro::Models::CustomerIdOnly, self, connection, loggingObject)
|
118
|
+
end
|
119
|
+
|
120
|
+
def self.deactivate(customerId, connection = nil, loggingObject = nil)
|
121
|
+
c = Customer.new
|
122
|
+
c.customerId = customerId
|
123
|
+
c.deactivate(connection, loggingObject)
|
124
|
+
end
|
125
|
+
|
126
|
+
def deactivate(connection = nil, loggingObject = nil)
|
127
|
+
connection ||= Connection.createFromConfig()
|
128
|
+
CorePro::Utils::Requestor.post('/customer/deactivate', CorePro::Models::CustomerIdOnly, self, connection, loggingObject)
|
129
|
+
end
|
130
|
+
|
131
|
+
def initiate(connection = nil, loggingObject = nil)
|
132
|
+
connection ||= Connection.createFromConfig()
|
133
|
+
CorePro::Utils::Requestor.post('/customer/initiate', CorePro::Models::CustomerResponse, self, connection, loggingObject)
|
134
|
+
end
|
135
|
+
|
136
|
+
def self.verify(verificationId, answers, connection = nil, loggingObject = nil)
|
137
|
+
cvr = CorePro::Models::CustomerVerifyRequest.new
|
138
|
+
cvr.verificationId = verificationId
|
139
|
+
cvr.answers = answers
|
140
|
+
cvr.verify connection, loggingObject
|
141
|
+
end
|
142
|
+
|
143
|
+
def verify(verificationId, answers, connection = nil, loggingObject = nil)
|
144
|
+
cvr = CorePro::Models::CustomerVerifyRequest.new
|
145
|
+
cvr.verificationId = verificationId
|
146
|
+
cvr.answers = answers
|
147
|
+
cvr.verify connection, loggingObject
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative 'models/model_base'
|
2
|
+
|
3
|
+
module CorePro
|
4
|
+
class CustomerBeneficiary < Models::ModelBase
|
5
|
+
|
6
|
+
attr_accessor :customerId
|
7
|
+
attr_accessor :customerBeneficiaryId
|
8
|
+
attr_accessor :firstName
|
9
|
+
attr_accessor :lastName
|
10
|
+
attr_accessor :birthDate
|
11
|
+
attr_accessor :taxId
|
12
|
+
attr_accessor :taxIdMasked
|
13
|
+
attr_accessor :isActive
|
14
|
+
|
15
|
+
def self.list(customerId, connection = nil, loggingObject = nil)
|
16
|
+
cb = CustomerBeneficiary.new
|
17
|
+
cb.customerId = customerId
|
18
|
+
cb.list connection, loggingObject
|
19
|
+
end
|
20
|
+
|
21
|
+
def list(connection = nil, loggingObject = nil)
|
22
|
+
connection ||= Connection.createFromConfig()
|
23
|
+
CorePro::Utils::Requestor.get("/customerbeneficiary/list/#{self.customerId}", CustomerBeneficiary, connection, loggingObject)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.get(customerId, customerBeneficiaryId, connection = nil, loggingObject = nil)
|
27
|
+
cb = CustomerBeneficiary.new
|
28
|
+
cb.customerId = customerId
|
29
|
+
cb.customerBeneficiaryId = customerBeneficiaryId
|
30
|
+
cb.get connection, loggingObject
|
31
|
+
end
|
32
|
+
|
33
|
+
def get(connection = nil, loggingObject = nil)
|
34
|
+
connection ||= Connection.createFromConfig()
|
35
|
+
CorePro::Utils::Requestor.get("/customerbeneficiary/get/#{self.customerId}/#{self.customerBeneficiaryId}", CustomerBeneficiary, connection, loggingObject)
|
36
|
+
end
|
37
|
+
|
38
|
+
def create(connection = nil, loggingObject = nil)
|
39
|
+
connection ||= Connection.createFromConfig()
|
40
|
+
CorePro::Utils::Requestor.post('/customerbeneficiary/create', CustomerBeneficiary, self, connection, loggingObject)
|
41
|
+
end
|
42
|
+
|
43
|
+
def update(connection = nil, loggingObject = nil)
|
44
|
+
connection ||= Connection.createFromConfig()
|
45
|
+
CorePro::Utils::Requestor.post('/customerbeneficiary/update', CustomerBeneficiary, self, connection, loggingObject)
|
46
|
+
end
|
47
|
+
|
48
|
+
def deactivate(connection = nil, loggingObject = nil)
|
49
|
+
connection ||= Connection.createFromConfig()
|
50
|
+
CorePro::Utils::Requestor.post('/customerbeneficiary/deactivate', CustomerBeneficiary, nil, connection, loggingObject)
|
51
|
+
true
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative 'models/mdoel_base'
|
2
|
+
require_relative 'utils/requestor'
|
3
|
+
require 'base64'
|
4
|
+
|
5
|
+
module CorePro
|
6
|
+
class CustomerDocument < Models::ModelBase
|
7
|
+
|
8
|
+
attr_accessor :customerId
|
9
|
+
attr_accessor :documentType
|
10
|
+
attr_accessor :documentName
|
11
|
+
attr_accessor :documentContent
|
12
|
+
attr_accessor :reasonType
|
13
|
+
|
14
|
+
def self.upload(customerId, documentType, documentName, documentContent, reasonType, connection = nil, loggingObject = nil)
|
15
|
+
cd = CustomerDocument.new
|
16
|
+
cd.customerId = customerId
|
17
|
+
cd.documentType = documentType
|
18
|
+
cd.documentName = documentName
|
19
|
+
cd.documentContent = documentContent
|
20
|
+
cd.reasonType = reasonType
|
21
|
+
cd.upload connection, loggingObject
|
22
|
+
end
|
23
|
+
|
24
|
+
def upload(connection = nil, loggingObject = nil)
|
25
|
+
# NOTE: documentContent is assumed to be raw content bytes.
|
26
|
+
# corepro API expects base64 encoded string. so we convert that here.
|
27
|
+
documentContent = Base64.encode64(documentContent)
|
28
|
+
|
29
|
+
connection ||= Connection.createFromConfig()
|
30
|
+
CorePro::Utils::Requestor.post('/customerdocument/upload', nil, self, connection, loggingObject)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative 'models/model_base'
|
2
|
+
require_relative 'utils/requestor'
|
3
|
+
module CorePro
|
4
|
+
class Document < Models::ModelBase
|
5
|
+
|
6
|
+
attr_accessor :bankId
|
7
|
+
attr_accessor :customerId
|
8
|
+
attr_accessor :documentId
|
9
|
+
attr_accessor :documentType
|
10
|
+
attr_accessor :culture
|
11
|
+
attr_accessor :html
|
12
|
+
attr_accessor :title
|
13
|
+
attr_accessor :downloadUrl
|
14
|
+
attr_accessor :effectiveDate
|
15
|
+
attr_accessor :expireDate
|
16
|
+
|
17
|
+
def self.list(cultureName, documentType = nil, connection = nil, loggingObject = nil)
|
18
|
+
connection ||= Connection.createFromConfig()
|
19
|
+
CorePro::Utils::Requestor.get("/document/list/#{cultureName}/#{documentType}", Document, connection, loggingObject)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require_relative 'models/model_base'
|
2
|
+
require_relative 'utils/requestor'
|
3
|
+
require_relative 'models/external_account_id_only'
|
4
|
+
require_relative 'models/external_account_verify'
|
5
|
+
require_relative 'connection'
|
6
|
+
|
7
|
+
module CorePro
|
8
|
+
class ExternalAccount < Models::ModelBase
|
9
|
+
|
10
|
+
attr_accessor :customerId
|
11
|
+
attr_accessor :externalAccountId
|
12
|
+
attr_accessor :name
|
13
|
+
attr_accessor :tag
|
14
|
+
attr_accessor :nickName
|
15
|
+
attr_accessor :firstName
|
16
|
+
attr_accessor :lastName
|
17
|
+
attr_accessor :type
|
18
|
+
attr_accessor :status
|
19
|
+
attr_accessor :statusDate
|
20
|
+
attr_accessor :routingNumber
|
21
|
+
attr_accessor :routingNumberMasked
|
22
|
+
attr_accessor :accountNumber
|
23
|
+
attr_accessor :accountNumberMasked
|
24
|
+
attr_accessor :nocCode
|
25
|
+
attr_accessor :isActive
|
26
|
+
attr_accessor :lockedDate
|
27
|
+
attr_accessor :lockedReason
|
28
|
+
|
29
|
+
def self.list(customerId, connection = nil, loggingObject = nil)
|
30
|
+
connection ||= Connection.createFromConfig()
|
31
|
+
CorePro::Utils::Requestor.get("/externalaccount/list/#{customerId}", ExternalAccount, connection, loggingObject)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.get(customerId, externalAccountId, connection = nil, loggingObject = nil)
|
35
|
+
connection ||= Connection.createFromConfig()
|
36
|
+
CorePro::Utils::Requestor.get("/externalaccount/get/#{customerId}/#{externalAccountId}", ExternalAccount, connection, loggingObject)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.getByTag(customerId, tag, connection = nil, loggingObject = nil)
|
40
|
+
connection ||= Connection.createFromConfig()
|
41
|
+
CorePro::Utils::Requestor.get("/externalaccount/getByTag/#{customerId}/#{tag}", ExternalAccount, connection, loggingObject)
|
42
|
+
end
|
43
|
+
|
44
|
+
def create(connection = nil, loggingObject = nil)
|
45
|
+
connection ||= Connection.createFromConfig()
|
46
|
+
eaid = CorePro::Utils::Requestor.post('/externalaccount/create', CorePro::Models::ExternalAccountIdOnly, self, connection, loggingObject)
|
47
|
+
eaid.externalAccountId
|
48
|
+
end
|
49
|
+
|
50
|
+
def initiate(connection = nil, loggingObject = nil)
|
51
|
+
connection ||= Connection.createFromConfig()
|
52
|
+
CorePro::Utils::Requestor.post('/externalaccount/initiate', CorePro::Models::ExternalAccountIdOnly, self, connection, loggingObject)
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.verify(customerId, externalAccountId, amount1, amount2, connection = nil, loggingObject = nil)
|
56
|
+
ea = ExternalAccount.new
|
57
|
+
ea.customerId = customerId
|
58
|
+
ea.externalAccountId = externalAccountId
|
59
|
+
ea.verify(amount1, amount2, connection, loggingObject)
|
60
|
+
end
|
61
|
+
|
62
|
+
def verify(amount1, amount2, connection = nil, loggingObject = nil)
|
63
|
+
connection ||= Connection.createFromConfig()
|
64
|
+
eav = CorePro::Models::ExternalAccountVerify.new
|
65
|
+
eav.customerId = @customerId
|
66
|
+
eav.externalAccountId = @externalAccountId
|
67
|
+
eav.amount1 = @amount1
|
68
|
+
eav.amount2 = @amount2
|
69
|
+
CorePro::Utils::Requestor.post('/externalaccount/verify', eav, self, connection, loggingObject)
|
70
|
+
true
|
71
|
+
end
|
72
|
+
|
73
|
+
def update(connection = nil, loggingObject = nil)
|
74
|
+
connection ||= Connection.createFromConfig()
|
75
|
+
CorePro::Utils::Requestor.post('/externalaccount/update', nil, self, connection, loggingObject)
|
76
|
+
true
|
77
|
+
end
|
78
|
+
|
79
|
+
def deactivate(connection = nil, loggingObject = nil)
|
80
|
+
connection ||= Connection.createFromConfig()
|
81
|
+
CorePro::Utils::Requestor.post('/externalaccount/deactivate', nil, self, connection, loggingObject)
|
82
|
+
true
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative 'Models/model_base'
|
2
|
+
require_relative 'utils/requestor'
|
3
|
+
require 'base64'
|
4
|
+
|
5
|
+
module CorePro
|
6
|
+
class ExternalAccountDocument < Models::ModelBase
|
7
|
+
|
8
|
+
attr_accessor :customerId
|
9
|
+
attr_accessor :externalAccountId
|
10
|
+
attr_accessor :documentType
|
11
|
+
attr_accessor :documentName
|
12
|
+
attr_accessor :documentContent
|
13
|
+
attr_accessor :reasonType
|
14
|
+
|
15
|
+
def self.upload(customerId, externalAccountId, documentType, documentName, documentContent, reasonType, connection = nil, loggingObject = nil)
|
16
|
+
ead = ExternalAccountDocument.new
|
17
|
+
ead.customerId = customerId
|
18
|
+
ead.externalAccountId = externalAccountId
|
19
|
+
ead.documentType = documentType
|
20
|
+
ead.documentName = documentName
|
21
|
+
ead.documentContent = documentContent
|
22
|
+
ead.reasonType = reasonType
|
23
|
+
ead.upload connection, loggingObject
|
24
|
+
end
|
25
|
+
|
26
|
+
def upload(connection = nil, loggingObject = nil)
|
27
|
+
# NOTE: documentContent is assumed to be raw content bytes.
|
28
|
+
# corepro API expects base64 encoded string. so we convert that here.
|
29
|
+
documentContent = Base64.encode64(documentContent)
|
30
|
+
|
31
|
+
connection ||= Connection.createFromConfig()
|
32
|
+
CorePro::Utils::Requestor.post('/externalaccountdocument/upload', nil, self, connection, loggingObject)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|