okra-ruby 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +35 -0
- data/LICENSE.txt +21 -0
- data/README.md +187 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/okra/error.rb +13 -0
- data/lib/okra/okra_modules/base_endpoints.rb +11 -0
- data/lib/okra/okra_products/account.rb +64 -0
- data/lib/okra/okra_products/assets_and_liabilities.rb +36 -0
- data/lib/okra/okra_products/auth.rb +67 -0
- data/lib/okra/okra_products/balance.rb +96 -0
- data/lib/okra/okra_products/bank.rb +18 -0
- data/lib/okra/okra_products/base/base.rb +89 -0
- data/lib/okra/okra_products/customer.rb +76 -0
- data/lib/okra/okra_products/identity.rb +106 -0
- data/lib/okra/okra_products/income.rb +65 -0
- data/lib/okra/okra_products/other_products.rb +112 -0
- data/lib/okra/okra_products/payment.rb +119 -0
- data/lib/okra/okra_products/revenue.rb +66 -0
- data/lib/okra/okra_products/transactions.rb +125 -0
- data/lib/okra/okra_products/widget.rb +15 -0
- data/lib/okra/version.rb +3 -0
- data/lib/okra_sdk.rb +77 -0
- data/okra-ruby.gemspec +29 -0
- metadata +115 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative "base/base.rb"
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class AssetsAndLiabilities < Base
|
5
|
+
|
6
|
+
def verify_liabilities(data)
|
7
|
+
base_url = okra_object.base_url
|
8
|
+
#certain that the required parameters are passed
|
9
|
+
required_params = ["customer"]
|
10
|
+
check_passed_parameters(required_params, data)
|
11
|
+
payload = data.to_json
|
12
|
+
response = post_request("#{base_url}/liabilities/process", payload)
|
13
|
+
return response
|
14
|
+
end
|
15
|
+
|
16
|
+
def verify_assets(data)
|
17
|
+
base_url = okra_object.base_url
|
18
|
+
#certain that the required parameters are passed
|
19
|
+
required_params = ["customer"]
|
20
|
+
check_passed_parameters(required_params, data)
|
21
|
+
payload = data.to_json
|
22
|
+
response = post_request("#{base_url}/assets/process", payload)
|
23
|
+
return response
|
24
|
+
end
|
25
|
+
|
26
|
+
def verify_insurance(data)
|
27
|
+
base_url = okra_object.base_url
|
28
|
+
#certain that the required parameters are passed
|
29
|
+
required_params = ["customer"]
|
30
|
+
check_passed_parameters(required_params, data)
|
31
|
+
payload = data.to_json
|
32
|
+
response = post_request("#{base_url}/insurance/process", payload)
|
33
|
+
return response
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require_relative "base/base.rb"
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Auth < Base
|
5
|
+
|
6
|
+
|
7
|
+
def fetch_auths(data)
|
8
|
+
base_url = okra_object.base_url
|
9
|
+
#certain that the required parameters are passed
|
10
|
+
required_params = ["page", "limit"]
|
11
|
+
check_passed_parameters(required_params, data)
|
12
|
+
payload = data.to_json
|
13
|
+
response = post_request("#{base_url}/products/auth/get", payload)
|
14
|
+
return response
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_by_id(data)
|
19
|
+
base_url = okra_object.base_url
|
20
|
+
#certain that the required parameters are passed
|
21
|
+
required_params = ["id"]
|
22
|
+
check_passed_parameters(required_params, data)
|
23
|
+
payload = data.to_json
|
24
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::AUTH_ENDPOINT}/getById", payload)
|
25
|
+
return response
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_by_customer(data)
|
29
|
+
base_url = okra_object.base_url
|
30
|
+
#certain that the required parameters are passed
|
31
|
+
required_params = ["customer"]
|
32
|
+
check_passed_parameters(required_params, data)
|
33
|
+
payload = data.to_json
|
34
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::AUTH_ENDPOINT}/getByCustomer", payload)
|
35
|
+
return response
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_by_date(data)
|
39
|
+
base_url = okra_object.base_url
|
40
|
+
#certain that the required parameters are passed
|
41
|
+
required_params = ["from", "to"]
|
42
|
+
check_passed_parameters(required_params, data)
|
43
|
+
payload = data.to_json
|
44
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::AUTH_ENDPOINT}/getByDate", payload)
|
45
|
+
return response
|
46
|
+
end
|
47
|
+
|
48
|
+
def get_by_bank(data)
|
49
|
+
base_url = okra_object.base_url
|
50
|
+
#certain that the required parameters are passed
|
51
|
+
required_params = ["bank"]
|
52
|
+
check_passed_parameters(required_params, data)
|
53
|
+
payload = data.to_json
|
54
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::AUTH_ENDPOINT}/getByBank", payload)
|
55
|
+
return response
|
56
|
+
end
|
57
|
+
|
58
|
+
def get_by_customerDate(data)
|
59
|
+
base_url = okra_object.base_url
|
60
|
+
#certain that the required parameters are passed
|
61
|
+
required_params = ["to", "from", "customer"]
|
62
|
+
check_passed_parameters(required_params, data)
|
63
|
+
payload = data.to_json
|
64
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::AUTH_ENDPOINT}/getByCustomerDate", payload)
|
65
|
+
return response
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require_relative "base/base.rb"
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Balance < Base
|
5
|
+
|
6
|
+
def fetch_balance(data)
|
7
|
+
base_url = okra_object.base_url
|
8
|
+
#certain that the required parameters are passed
|
9
|
+
required_params = ["page", "limit"]
|
10
|
+
check_passed_parameters(required_params, data)
|
11
|
+
payload = data.to_json
|
12
|
+
response = post_request("#{base_url}/products/balances", payload)
|
13
|
+
return response
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_by_id(data)
|
17
|
+
base_url = okra_object.base_url
|
18
|
+
#certain that the required parameters are passed
|
19
|
+
required_params = ["id"]
|
20
|
+
check_passed_parameters(required_params, data)
|
21
|
+
payload = data.to_json
|
22
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::BALANCE_ENDPOINT}/getBalanceById", payload)
|
23
|
+
return response
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_by_customer(data)
|
27
|
+
base_url = okra_object.base_url
|
28
|
+
#certain that the required parameters are passed
|
29
|
+
required_params = ["customer"]
|
30
|
+
check_passed_parameters(required_params, data)
|
31
|
+
payload = data.to_json
|
32
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::BALANCE_ENDPOINT}/getByCustomer", payload)
|
33
|
+
return response
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_by_date(data)
|
37
|
+
base_url = okra_object.base_url
|
38
|
+
#certain that the required parameters are passed
|
39
|
+
required_params = ["from", "to"]
|
40
|
+
check_passed_parameters(required_params, data)
|
41
|
+
payload = data.to_json
|
42
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::BALANCE_ENDPOINT}/getByDate", payload)
|
43
|
+
return response
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_by_account(data)
|
47
|
+
base_url = okra_object.base_url
|
48
|
+
#certain that the required parameters are passed
|
49
|
+
required_params = ["bank"]
|
50
|
+
check_passed_parameters(required_params, data)
|
51
|
+
payload = data.to_json
|
52
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::BALANCE_ENDPOINT}/getByAccount", payload)
|
53
|
+
return response
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_by_customerDate(data)
|
57
|
+
base_url = okra_object.base_url
|
58
|
+
#certain that the required parameters are passed
|
59
|
+
required_params = ["to", "from", "customer"]
|
60
|
+
check_passed_parameters(required_params, data)
|
61
|
+
payload = data.to_json
|
62
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::BALANCE_ENDPOINT}/getByCustomerDate", payload)
|
63
|
+
return response
|
64
|
+
end
|
65
|
+
|
66
|
+
def balance_refresh(account_id)
|
67
|
+
base_url = okra_object.base_url
|
68
|
+
#certain that the required parameters are passed
|
69
|
+
required_params = ["account_id"]
|
70
|
+
check_passed_parameters(required_params, data)
|
71
|
+
payload = data.to_json
|
72
|
+
response = post_request("#{base_url}/balance/refresh", payload)
|
73
|
+
return response
|
74
|
+
end
|
75
|
+
|
76
|
+
def balance_check(account_id)
|
77
|
+
base_url = okra_object.base_url
|
78
|
+
#certain that the required parameters are passed
|
79
|
+
required_params = ["account_id"]
|
80
|
+
check_passed_parameters(required_params, data)
|
81
|
+
payload = data.to_json
|
82
|
+
response = post_request("#{base_url}/balance/check", payload)
|
83
|
+
return response
|
84
|
+
end
|
85
|
+
|
86
|
+
def enhanced_balance(data)
|
87
|
+
base_url = okra_object.base_url
|
88
|
+
#certain that the required parameters are passed
|
89
|
+
required_params = ["account_id", "customer_id"]
|
90
|
+
check_passed_parameters(required_params, data)
|
91
|
+
payload = data.to_json
|
92
|
+
response = post_request("#{base_url}/balance/process", payload)
|
93
|
+
return response
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative "base/base.rb"
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Bank < Base
|
5
|
+
|
6
|
+
def get_list_of_banks
|
7
|
+
base_url = okra_object.base_url
|
8
|
+
response = get_request("#{base_url}/banks/list")
|
9
|
+
return response
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_by_id(id)
|
13
|
+
base_url = okra_object.base_url
|
14
|
+
response = get_request("#{base_url}/banks/getById?id=#{id}")
|
15
|
+
return response
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require_relative "../../okra_modules/base_endpoints"
|
3
|
+
require "json"
|
4
|
+
require_relative "../../error"
|
5
|
+
|
6
|
+
class Base
|
7
|
+
|
8
|
+
attr_reader :okra_object
|
9
|
+
|
10
|
+
|
11
|
+
#method to initialize this class
|
12
|
+
|
13
|
+
def initialize(okra_object=nil)
|
14
|
+
unless !okra_object.nil?
|
15
|
+
raise ArgumentError, "Okra Object is required!!!"
|
16
|
+
end
|
17
|
+
@okra_object = okra_object
|
18
|
+
end
|
19
|
+
|
20
|
+
#method to make a get request
|
21
|
+
|
22
|
+
def get_request(endpoint)
|
23
|
+
|
24
|
+
begin
|
25
|
+
response = HTTParty.get(endpoint, :headers => { "Authorization" => "Bearer #{okra_object.secret_key}" })
|
26
|
+
unless (response.code ==200 || response.code == 201)
|
27
|
+
raise OkraServerError.new(response), "HTTP Code #{response.code}: #{response.body}"
|
28
|
+
end
|
29
|
+
|
30
|
+
return response
|
31
|
+
unless(response.code != 0)
|
32
|
+
raise OkraServerError.new(response), "Server Message: #{response.Message}"
|
33
|
+
end
|
34
|
+
|
35
|
+
rescue JSON::ParserError => jsonerr
|
36
|
+
raise OkraServerError.new(response), "Invalid result data. Could not parse JSON response body \n #{jsonerr.message}"
|
37
|
+
return response
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
#method to make a post request
|
42
|
+
|
43
|
+
def post_request(endpoint, data)
|
44
|
+
begin
|
45
|
+
response = HTTParty.post(endpoint, {
|
46
|
+
body: data,
|
47
|
+
headers: {
|
48
|
+
"Content-Type" => "application/json",
|
49
|
+
"Authorization" => "Bearer #{okra_object.secret_key}"
|
50
|
+
}
|
51
|
+
})
|
52
|
+
|
53
|
+
unless(response.code == 200 || response.code == 201)
|
54
|
+
raise OkraServerError.new(response), "HTTP Code #{response.code}: #{response.body}"
|
55
|
+
end
|
56
|
+
return response
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# method to make a delete request
|
61
|
+
def delete_request(endpoint, data)
|
62
|
+
begin
|
63
|
+
response = HTTParty.delete(endpoint, {
|
64
|
+
body: data,
|
65
|
+
headers: {
|
66
|
+
"Content-Type" => "application/json",
|
67
|
+
"Authorization" => "Bearer #{okra_object.secret_key}"
|
68
|
+
}
|
69
|
+
})
|
70
|
+
|
71
|
+
unless (response.code == 200 || response.code == 201)
|
72
|
+
raise OkraServerError.new(response), "HTTP Code #{response.code}: #{response.body}"
|
73
|
+
end
|
74
|
+
return response
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# method to check if the passed parameters is equal to the expected parameters
|
79
|
+
def check_passed_parameters(required_params, passed_params)
|
80
|
+
|
81
|
+
# This is used to check if the passed authorization parameters matches the required parameters
|
82
|
+
required_params.each do |k, v|
|
83
|
+
if !passed_params.key?(k)
|
84
|
+
raise IncompleteParameterError, "Parameters Incomplete, Missing Parameter: #{k}, Please pass in the complete parameter."
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require_relative "base/base.rb"
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Customer < Base
|
5
|
+
|
6
|
+
def list_customers(data)
|
7
|
+
base_url = okra_object.base_url
|
8
|
+
payload = data.to_json
|
9
|
+
response = post_request("#{base_url}/customers/list", payload)
|
10
|
+
return response
|
11
|
+
end
|
12
|
+
|
13
|
+
def fetch_customer_by_field(data)
|
14
|
+
base_url = okra_object.base_url
|
15
|
+
#certain that the required parameters are passed
|
16
|
+
required_params = ["value", "key"]
|
17
|
+
check_passed_parameters(required_params, data)
|
18
|
+
payload = data.to_json
|
19
|
+
response = post_request("#{base_url}/customers/find-customers-by", payload)
|
20
|
+
return response
|
21
|
+
end
|
22
|
+
|
23
|
+
def remove_customer(data)
|
24
|
+
base_url = okra_object.base_url
|
25
|
+
#certain that the required parameters are passed
|
26
|
+
required_params = ["customer"]
|
27
|
+
check_passed_parameters(required_params, data)
|
28
|
+
payload = data.to_json
|
29
|
+
response = post_request("#{base_url}/customers/remove", payload)
|
30
|
+
return response
|
31
|
+
end
|
32
|
+
|
33
|
+
def flag_customer(data)
|
34
|
+
base_url = okra_object.base_url
|
35
|
+
#certain that the required parameters are passed
|
36
|
+
required_params = ["customer", "bank"]
|
37
|
+
check_passed_parameters(required_params, data)
|
38
|
+
payload = data.to_json
|
39
|
+
response = post_request("#{base_url}/customers/flag", payload)
|
40
|
+
return response
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
#======================================================== This is only for sandbox
|
46
|
+
|
47
|
+
def generate_customer(data)
|
48
|
+
base_url = okra_object.base_url
|
49
|
+
#certain that the required parameters are passed
|
50
|
+
required_params = ["number", "create"]
|
51
|
+
check_passed_parameters(required_params, data)
|
52
|
+
payload = data.to_json
|
53
|
+
response = post_request("#{base_url}/customers/generate", payload)
|
54
|
+
return response
|
55
|
+
end
|
56
|
+
|
57
|
+
def create_customer(data)
|
58
|
+
base_url = okra_object.base_url
|
59
|
+
#certain that the required parameters are passed
|
60
|
+
required_params = ["noOfAccount", "name", "bank", "username", "password", "type", "volume", "identity", "internetSpeed"]
|
61
|
+
check_passed_parameters(required_params, data)
|
62
|
+
payload = data.to_json
|
63
|
+
response = post_request("#{base_url}/customers/create", payload)
|
64
|
+
return response
|
65
|
+
end
|
66
|
+
|
67
|
+
def fetch_customer(data)
|
68
|
+
base_url = okra_object.base_url
|
69
|
+
#certain that the required parameters are passed
|
70
|
+
required_params = ["customer"]
|
71
|
+
check_passed_parameters(required_params, data)
|
72
|
+
payload = data.to_json
|
73
|
+
response = post_request("#{base_url}/customers/get", payload)
|
74
|
+
return response
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
require_relative "base/base.rb"
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Identity < Base
|
5
|
+
|
6
|
+
def fetch_identities(data)
|
7
|
+
base_url = okra_object.base_url
|
8
|
+
#certain that the required parameters are passed
|
9
|
+
required_params = ["page", "limit"]
|
10
|
+
check_passed_parameters(required_params, data)
|
11
|
+
payload = data.to_json
|
12
|
+
response = post_request("#{base_url}/products/identities", payload)
|
13
|
+
return response
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_by_id(data)
|
17
|
+
base_url = okra_object.base_url
|
18
|
+
#certain that the required parameters are passed
|
19
|
+
required_params = ["id"]
|
20
|
+
check_passed_parameters(required_params, data)
|
21
|
+
payload = data.to_json
|
22
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::IDENTITY_ENDPOINT}/getById", payload)
|
23
|
+
return response
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_by_customer(data)
|
27
|
+
base_url = okra_object.base_url
|
28
|
+
#certain that the required parameters are passed
|
29
|
+
required_params = ["customer"]
|
30
|
+
check_passed_parameters(required_params, data)
|
31
|
+
payload = data.to_json
|
32
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::IDENTITY_ENDPOINT}/getByCustomer", payload)
|
33
|
+
return response
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_by_date(data)
|
37
|
+
base_url = okra_object.base_url
|
38
|
+
#certain that the required parameters are passed
|
39
|
+
required_params = ["from", "to"]
|
40
|
+
check_passed_parameters(required_params, data)
|
41
|
+
payload = data.to_json
|
42
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::IDENTITY_ENDPOINT}/getByDate", payload)
|
43
|
+
return response
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_by_bank(data)
|
47
|
+
base_url = okra_object.base_url
|
48
|
+
#certain that the required parameters are passed
|
49
|
+
required_params = ["bank"]
|
50
|
+
check_passed_parameters(required_params, data)
|
51
|
+
payload = data.to_json
|
52
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::IDENTITY_ENDPOINT}/getByBank", payload)
|
53
|
+
return response
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_by_customerDate(data)
|
57
|
+
base_url = okra_object.base_url
|
58
|
+
#certain that the required parameters are passed
|
59
|
+
required_params = ["to", "from", "customer"]
|
60
|
+
check_passed_parameters(required_params, data)
|
61
|
+
payload = data.to_json
|
62
|
+
response = post_request("#{base_url}#{BASE_ENDPOINTS::IDENTITY_ENDPOINT}/getByCustomerDate", payload)
|
63
|
+
return response
|
64
|
+
end
|
65
|
+
|
66
|
+
def fetch_identity_by_nuban(data)
|
67
|
+
base_url = okra_object.base_url
|
68
|
+
#certain that the required parameters are passed
|
69
|
+
required_params = ["bank", "nuban"]
|
70
|
+
check_passed_parameters(required_params, data)
|
71
|
+
payload = data.to_json
|
72
|
+
response = post_request("#{base_url}/products/kyc/nuban-verify", payload)
|
73
|
+
return response
|
74
|
+
end
|
75
|
+
|
76
|
+
def rc_verify(data)
|
77
|
+
base_url = okra_object.base_url
|
78
|
+
#certain that the required parameters are passed
|
79
|
+
required_params = ["rc_number", "company_name"]
|
80
|
+
check_passed_parameters(required_params, data)
|
81
|
+
payload = data.to_json
|
82
|
+
response = post_request("#{base_url}/products/kyc/rc-verify", payload)
|
83
|
+
return response
|
84
|
+
end
|
85
|
+
|
86
|
+
def rc_tin_verify(data)
|
87
|
+
base_url = okra_object.base_url
|
88
|
+
#certain that the required parameters are passed
|
89
|
+
required_params = ["rc_number", "company_name", "tin_number"]
|
90
|
+
check_passed_parameters(required_params, data)
|
91
|
+
payload = data.to_json
|
92
|
+
response = post_request("#{base_url}/products/kyc/rc-tin-verify", payload)
|
93
|
+
return response
|
94
|
+
end
|
95
|
+
|
96
|
+
def tin_verify(data)
|
97
|
+
base_url = okra_object.base_url
|
98
|
+
#certain that the required parameters are passed
|
99
|
+
required_params = ["company_name", "tin_number"]
|
100
|
+
check_passed_parameters(required_params, data)
|
101
|
+
payload = data.to_json
|
102
|
+
response = post_request("#{base_url}/products/kyc/tin-verify", payload)
|
103
|
+
return response
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|