unit_ruby_sdk 0.1.5 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +28 -4
- data/lib/unit/api_resources/atm_location_resource.rb +21 -0
- data/lib/unit/api_resources/check_deposit_resource.rb +81 -0
- data/lib/unit/models/application/application.rb +2 -5
- data/lib/unit/models/application/upload_document_request.rb +2 -5
- data/lib/unit/models/atm_location/atm_location.rb +38 -0
- data/lib/unit/models/atm_location/list_by_address_params.rb +26 -0
- data/lib/unit/models/atm_location/list_by_coordinates_params.rb +26 -0
- data/lib/unit/models/atm_location/list_by_postal_code_params.rb +26 -0
- data/lib/unit/models/check_deposit/check_deposit.rb +107 -0
- data/lib/unit/models/check_deposit/create_check_deposit_request.rb +43 -0
- data/lib/unit/models/check_deposit/get_image_request.rb +19 -0
- data/lib/unit/models/check_deposit/get_request.rb +22 -0
- data/lib/unit/models/check_deposit/list_deposit_params.rb +42 -0
- data/lib/unit/models/check_deposit/patch_deposit_request.rb +29 -0
- data/lib/unit/models/check_deposit/upload_image_request.rb +22 -0
- data/lib/unit/types/coordinates.rb +24 -0
- data/lib/unit/types/document_file_type.rb +11 -0
- data/lib/unit/utils/http_helper.rb +15 -9
- data/lib/unit/version.rb +1 -1
- data/lib/unit_ruby_sdk.rb +6 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebccfab4c5a1935e6155ab1778b6c8beb123e7a4171b14ea6fcb2617d84d9da0
|
4
|
+
data.tar.gz: 195fe66d952a385323e750b19abca9940843645252771462efbefc75dc3a1e68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92662a6367cb982b8fe77577b729e28139a9da4b78da5518ea99e32c064fbfede80106477569380a2b68c4816e1e2e4641b4911d38f63cd608ca8f9abb8c9dc4
|
7
|
+
data.tar.gz: a80e9f7bb02d93e24adafa4c0f1d792ad7fa9ee9bcf64a421c5d06a45366e90ed5a909fa68271ccd026c287ef2ecf4167cddf436563a6738d66a0042688602b7
|
data/README.md
CHANGED
@@ -47,6 +47,19 @@ response = Unit::Application.create_business_application(
|
|
47
47
|
application = response.data
|
48
48
|
|
49
49
|
puts application.id
|
50
|
+
|
51
|
+
file = File.open("./spec/test.pdf", "rb")
|
52
|
+
contents = file.read
|
53
|
+
file.close
|
54
|
+
|
55
|
+
upload_document_request = Unit::Application.upload_document(
|
56
|
+
application_id: "836683",
|
57
|
+
document_id: "125214",
|
58
|
+
file: contents,
|
59
|
+
file_type: Unit::Types::DocumentFileType::PDF,
|
60
|
+
is_back_side: true)
|
61
|
+
|
62
|
+
puts upload_document_request.data.id
|
50
63
|
```
|
51
64
|
|
52
65
|
### Fetching a Customer
|
@@ -67,10 +80,10 @@ puts customer.id
|
|
67
80
|
require 'unit_ruby_sdk'
|
68
81
|
|
69
82
|
response = Unit::Payment.create_book_payment(
|
70
|
-
amount:
|
71
|
-
description:
|
72
|
-
|
73
|
-
|
83
|
+
amount: 1000,
|
84
|
+
description: "test payment",
|
85
|
+
account_id: "27573",
|
86
|
+
counterparty_account_id: "36981"
|
74
87
|
)
|
75
88
|
payment = response.data
|
76
89
|
puts payment.id
|
@@ -97,6 +110,17 @@ card = response.data
|
|
97
110
|
puts card.id
|
98
111
|
```
|
99
112
|
|
113
|
+
### Creating a check deposit
|
114
|
+
```ruby
|
115
|
+
response = Unit::CheckDeposit.create_deposit(
|
116
|
+
account_id: account_id,
|
117
|
+
amount: 50_000,
|
118
|
+
description: "test check deposit"
|
119
|
+
)
|
120
|
+
deposit = response.data
|
121
|
+
puts deposit.id
|
122
|
+
```
|
123
|
+
|
100
124
|
### Logging Errors
|
101
125
|
|
102
126
|
```ruby
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "./base_resource"
|
4
|
+
require_relative "../utils/http_helper"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Unit
|
8
|
+
module Resource
|
9
|
+
class AtmLocationResource < Unit::Resource::BaseResource
|
10
|
+
class << self
|
11
|
+
# Get a list of ATM locations by calling Unit's API
|
12
|
+
# @param params [ListByCoordinatesParams, ListByAddressParams, ListByPostalCodeParams] The parameters to use to get a list of ATM locations
|
13
|
+
# @return [Unit::Response] The response from Unit's API
|
14
|
+
def list(params = nil)
|
15
|
+
response = HttpHelper.get("#{api_url}/atm-locations", params: params.to_hash, headers: headers)
|
16
|
+
response_handler(response)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "./base_resource"
|
4
|
+
require_relative "../utils/http_helper"
|
5
|
+
require "json"
|
6
|
+
# class for creating requests for check deposits to Unit API and parsing responses
|
7
|
+
# @see https://docs.unit.co/check-deposits
|
8
|
+
module Unit
|
9
|
+
module Resource
|
10
|
+
class CheckDepositResource < Unit::Resource::BaseResource
|
11
|
+
class << self
|
12
|
+
# Create a check deposit by calling Unit's API
|
13
|
+
# @param request [CreateCheckDepositRequest]
|
14
|
+
# @return [UnitResponse, UnitError]
|
15
|
+
def create_deposit(request)
|
16
|
+
payload = request.to_json_api
|
17
|
+
response = HttpHelper.post("#{api_url}/check-deposits", body: payload, headers: headers)
|
18
|
+
response_handler(response)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Get a check deposit by id by calling Unit's API
|
22
|
+
# @param params [GetRequest]
|
23
|
+
# @return [UnitResponse, UnitError]
|
24
|
+
def get(params)
|
25
|
+
payload = params.to_hash
|
26
|
+
response = HttpHelper.get("#{api_url}/check-deposits/#{params.deposit_id}", params: payload, headers: headers)
|
27
|
+
response_handler(response)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Get a list of check deposits by calling Unit's API
|
31
|
+
# @param params [ListDepositRequest]
|
32
|
+
# @return [UnitResponse, UnitError]
|
33
|
+
def list(params = nil)
|
34
|
+
response = HttpHelper.get("#{api_url}/check-deposits", params: params.to_hash, headers: headers)
|
35
|
+
response_handler(response)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Update a check deposit by id by calling Unit's API
|
39
|
+
# @param request [PatchCheckDepositRequest]
|
40
|
+
# @return [UnitResponse, UnitError]
|
41
|
+
def update(request)
|
42
|
+
payload = request.to_json_api
|
43
|
+
response = HttpHelper.patch("#{api_url}/check-deposits/#{request.deposit_id}", body: payload, headers: headers)
|
44
|
+
response_handler(response)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Upload a check deposit image by calling Unit's API
|
48
|
+
# @param request [UploadImageRequest]
|
49
|
+
# @return [UnitResponse, UnitError]
|
50
|
+
def upload(request)
|
51
|
+
side = request.is_front_side ? "/front" : "/back"
|
52
|
+
|
53
|
+
headers_updated = headers.clone
|
54
|
+
|
55
|
+
headers_updated["Content-Type"] = "image/jpeg"
|
56
|
+
|
57
|
+
response = HttpHelper.put("#{api_url}/check-deposits/#{request.deposit_id}#{side}", body: request.file_content, headers: headers_updated)
|
58
|
+
|
59
|
+
response_handler(response)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Get a check deposit image by calling Unit's API
|
63
|
+
# @param request [GetImageRequest]
|
64
|
+
# @return [UnitResponse, UnitError]
|
65
|
+
def get_image(request)
|
66
|
+
side = request.is_front_side ? "front" : "back"
|
67
|
+
response = HttpHelper.get("#{api_url}/check-deposits/#{request.deposit_id}/#{side}", headers: headers, response_type: "image")
|
68
|
+
file_response_handler(response)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Confirm a check deposit by calling Unit's API
|
72
|
+
# @param deposit_id [String]
|
73
|
+
# @return [UnitResponse, UnitError]
|
74
|
+
def confirm_details(deposit_id)
|
75
|
+
response = HttpHelper.post("#{api_url}/check-deposits/#{deposit_id}/confirm", headers: headers)
|
76
|
+
response_handler(response)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -111,11 +111,8 @@ module Unit
|
|
111
111
|
# Upload an application document by calling Unit's API
|
112
112
|
# @param application_id [String] The application ID
|
113
113
|
# @param document_id [String] The document ID
|
114
|
-
# @param file [String] The file
|
115
|
-
# @param file_type [String] The file type
|
116
|
-
# @option file_type [String] :pdf
|
117
|
-
# @option file_type [String] :jpg
|
118
|
-
# @option file_type [String] :png
|
114
|
+
# @param file [String] The file content
|
115
|
+
# @param file_type [String] The file type. One of the Unit::Types::DocumentFileType constants.
|
119
116
|
# @param is_back_side [Boolean] The file is back side
|
120
117
|
# @return [UnitResponse, UnitError]
|
121
118
|
def upload_document(application_id:, document_id:, file:, file_type:, is_back_side: false)
|
@@ -9,11 +9,8 @@ module Unit
|
|
9
9
|
|
10
10
|
# @param application_id [String] The application ID
|
11
11
|
# @param document_id [String] The document ID
|
12
|
-
# @param file [String] The file
|
13
|
-
# @param file_type [String] The file type
|
14
|
-
# @option file_type [String] :pdf
|
15
|
-
# @option file_type [String] :jpg
|
16
|
-
# @option file_type [String] :png
|
12
|
+
# @param file [String] The file content
|
13
|
+
# @param file_type [String] The file type. One of the Unit::Types::DocumentFileType constants.
|
17
14
|
# @param is_back_side [Boolean] The file is back side
|
18
15
|
def initialize(application_id, document_id, file, file_type, is_back_side: false)
|
19
16
|
@application_id = application_id
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Unit
|
4
|
+
module AtmLocation
|
5
|
+
autoload :ListByCoordinatesParams, "unit/models/atm_location/list_by_coordinates_params"
|
6
|
+
autoload :ListByAddressParams, "unit/models/atm_location/list_by_address_params"
|
7
|
+
autoload :ListByPostalCodeParams, "unit/models/atm_location/list_by_postal_code_params"
|
8
|
+
|
9
|
+
class << self
|
10
|
+
# Get a list of ATM locations by coordinates by calling Unit's API
|
11
|
+
# @see https://docs.unit.co/cards-atm-locations#list-atm-locations-by-coordinates
|
12
|
+
# @param coordinates [Coordinates]
|
13
|
+
# @param search_radius [Integer] - optional
|
14
|
+
def list_by_coordinates(coordinates:, search_radius: nil)
|
15
|
+
params = ListByCoordinatesParams.new(coordinates, search_radius)
|
16
|
+
Unit::Resource::AtmLocationResource.list(params)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Get a list of ATM locations by postal code by calling Unit's API
|
20
|
+
# @see https://docs.unit.co/cards-atm-locations#list-atm-locations-by-postal-code
|
21
|
+
# @param postal_code [String]
|
22
|
+
# @param search_radius [Integer] - optional
|
23
|
+
def list_by_postal_code(postal_code:, search_radius: nil)
|
24
|
+
params = ListByPostalCodeParams.new(postal_code, search_radius)
|
25
|
+
Unit::Resource::AtmLocationResource.list(params)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Get a list of ATM locations by address by calling Unit's API
|
29
|
+
# @see https://docs.unit.co/cards-atm-locations#list-atm-locations-by-address
|
30
|
+
# @param address [Address]
|
31
|
+
# @param search_radius [Integer] - optional
|
32
|
+
def list_by_address(address:, search_radius: nil)
|
33
|
+
params = ListByAddressParams.new(address, search_radius)
|
34
|
+
Unit::Resource::AtmLocationResource.list(params)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# params fot list atm locations by address
|
4
|
+
# @see
|
5
|
+
module Unit
|
6
|
+
module AtmLocation
|
7
|
+
class ListByAddressParams
|
8
|
+
attr_reader :address, :search_radius
|
9
|
+
|
10
|
+
# @param address [Address]
|
11
|
+
# @param search_radius [Integer]
|
12
|
+
def initialize(address, search_radius = nil)
|
13
|
+
@address = address
|
14
|
+
@search_radius = search_radius
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_hash
|
18
|
+
params = {
|
19
|
+
"filter[address]": address.represent.to_json,
|
20
|
+
"filter[searchRadius]": search_radius
|
21
|
+
}
|
22
|
+
params.compact
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# params to list atm locations by coordinates
|
4
|
+
# @see https://docs.unit.co/cards-atm-locations/#list-atm-locations-by-coordinates
|
5
|
+
module Unit
|
6
|
+
module AtmLocation
|
7
|
+
class ListByCoordinatesParams
|
8
|
+
attr_reader :coordinates, :search_radius
|
9
|
+
|
10
|
+
# @param coordinates [Coordinates]
|
11
|
+
# @param search_radius [Integer]
|
12
|
+
def initialize(coordinates, search_radius = nil)
|
13
|
+
@coordinates = coordinates
|
14
|
+
@search_radius = search_radius
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_hash
|
18
|
+
params = {
|
19
|
+
"filter[coordinates]": coordinates.represent,
|
20
|
+
"filter[searchRadius]": search_radius
|
21
|
+
}
|
22
|
+
params.compact
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# params to list atm locations by postal code
|
4
|
+
# @see https://docs.unit.co/cards-atm-locations/#list-atm-locations-by-postal-code
|
5
|
+
module Unit
|
6
|
+
module AtmLocation
|
7
|
+
class ListByPostalCodeParams
|
8
|
+
attr_reader :postal_code, :search_radius
|
9
|
+
|
10
|
+
# @param postal_code [String]
|
11
|
+
# @param search_radius [Integer]
|
12
|
+
def initialize(postal_code, search_radius = nil)
|
13
|
+
@postal_code = postal_code
|
14
|
+
@search_radius = search_radius
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_hash
|
18
|
+
params = {
|
19
|
+
"filter[postalCode]": postal_code,
|
20
|
+
"filter[searchRadius]": search_radius
|
21
|
+
}
|
22
|
+
params.compact
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Unit
|
4
|
+
module CheckDeposit
|
5
|
+
CHECK_DEPOSIT_LIMIT = 100
|
6
|
+
CHECK_DEPOSIT_OFFSET = 0
|
7
|
+
|
8
|
+
autoload :CreateCheckDepositRequest, "unit/models/check_deposit/create_check_deposit_request"
|
9
|
+
autoload :GetRequest, "unit/models/check_deposit/get_request"
|
10
|
+
autoload :ListDepositParams, "unit/models/check_deposit/list_deposit_params"
|
11
|
+
autoload :UploadImageRequest, "unit/models/check_deposit/upload_image_request"
|
12
|
+
autoload :GetImageRequest, "unit/models/check_deposit/get_image_request"
|
13
|
+
autoload :PatchDepositRequest, "unit/models/check_deposit/patch_deposit_request"
|
14
|
+
|
15
|
+
class << self
|
16
|
+
# Create a check deposit
|
17
|
+
# @see https://docs.unit.co/check-deposits#create-check-deposit
|
18
|
+
# @param account_id [String]
|
19
|
+
# @param amount [Integer]
|
20
|
+
# @param description [String]
|
21
|
+
# @param tags [Hash] - optional
|
22
|
+
# @param idempotency_key [String] - optional
|
23
|
+
def create_deposit(account_id:, amount:, description:, tags: nil, idempotency_key: nil)
|
24
|
+
request = CreateCheckDepositRequest.new(account_id, amount, description, tags, idempotency_key)
|
25
|
+
Unit::Resource::CheckDepositResource.create_deposit(request)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Get a check deposit by calling Unit's API
|
29
|
+
# @see https://docs.unit.co/check-deposits#get-specific-check-deposit
|
30
|
+
# @param deposit_id [String]
|
31
|
+
# @param include [Array<String>] - optional
|
32
|
+
def get_deposit(deposit_id:, include: nil)
|
33
|
+
request = GetRequest.new(deposit_id, include)
|
34
|
+
Unit::Resource::CheckDepositResource.get(request)
|
35
|
+
end
|
36
|
+
|
37
|
+
# List check deposits
|
38
|
+
# @see https://docs.unit.co/check-deposits#list-check-deposits
|
39
|
+
# @param limit [Integer] - optional
|
40
|
+
# @param offset [Integer] - optional
|
41
|
+
# @param account_id [String] - optional
|
42
|
+
# @param customer_id [String] - optional
|
43
|
+
# @param tags [Hash] - optional
|
44
|
+
# @param sort [String] - optional
|
45
|
+
# @param include [Array<String>] - optional
|
46
|
+
def list_deposit(limit: CHECK_DEPOSIT_LIMIT, offset: CHECK_DEPOSIT_OFFSET, account_id: nil,
|
47
|
+
customer_id: nil, tags: nil, sort: nil, include: nil)
|
48
|
+
request = ListDepositParams.new(limit, offset, account_id, customer_id, tags, sort, include)
|
49
|
+
Unit::Resource::CheckDepositResource.list(request)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Upload an image front side for a check deposit
|
53
|
+
# @see https://docs.unit.co/check-deposits#upload-front-side-image
|
54
|
+
# @param deposit_id [String]
|
55
|
+
# @param file_content [String]
|
56
|
+
# @param is_front_side [Boolean] - optional
|
57
|
+
def upload_image_front(deposit_id:, file_content:, is_front_side: true)
|
58
|
+
request = UploadImageRequest.new(deposit_id, file_content, is_front_side: is_front_side)
|
59
|
+
Unit::Resource::CheckDepositResource.upload(request)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Upload an image back side for a check deposit
|
63
|
+
# @see https://docs.unit.co/check-deposits#upload-back-side-image
|
64
|
+
# @param deposit_id [String]
|
65
|
+
# @param file_content [String]
|
66
|
+
# @param is_front_side [Boolean] - optional
|
67
|
+
def upload_image_back(deposit_id:, file_content:, is_front_side: false)
|
68
|
+
request = UploadImageRequest.new(deposit_id, file_content, is_front_side: is_front_side)
|
69
|
+
Unit::Resource::CheckDepositResource.upload(request)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Get a check deposit image front side
|
73
|
+
# @see https://docs.unit.co/check-deposits#get-specific-check-deposit-front-image
|
74
|
+
# @param deposit_id [String]
|
75
|
+
# @param is_front_side [Boolean] - optional
|
76
|
+
def get_image_front(deposit_id:, is_front_side: true)
|
77
|
+
request = GetImageRequest.new(deposit_id, is_front_side: is_front_side)
|
78
|
+
Unit::Resource::CheckDepositResource.get_image(request)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Get a check deposit image back side
|
82
|
+
# @see https://docs.unit.co/check-deposits#get-specific-check-deposit-back-image
|
83
|
+
# @param deposit_id [String]
|
84
|
+
# @param is_front_side [Boolean] - optional
|
85
|
+
def get_image_back(deposit_id:, is_front_side: false)
|
86
|
+
request = GetImageRequest.new(deposit_id, is_front_side: is_front_side)
|
87
|
+
Unit::Resource::CheckDepositResource.get_image(request)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Update a check deposit
|
91
|
+
# @see https://docs.unit.co/check-deposits#update-check-deposit
|
92
|
+
# @param deposit_id [String]
|
93
|
+
# @param tags [Hash] - optional
|
94
|
+
def update_deposit(deposit_id:, tags:)
|
95
|
+
request = PatchDepositRequest.new(deposit_id, tags)
|
96
|
+
Unit::Resource::CheckDepositResource.update(request)
|
97
|
+
end
|
98
|
+
|
99
|
+
# Confirm check deposit details
|
100
|
+
# @see https://docs.unit.co/check-deposits#confirm-check-deposit-details
|
101
|
+
# @param deposit_id [String]
|
102
|
+
def confirm_details(deposit_id:)
|
103
|
+
Unit::Resource::CheckDepositResource.confirm_details(deposit_id)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to create check deposit
|
4
|
+
# @see https://docs.unit.co/check-deposits#create-check-deposit
|
5
|
+
module Unit
|
6
|
+
module CheckDeposit
|
7
|
+
class CreateCheckDepositRequest
|
8
|
+
attr_reader :account_id, :amount, :description, :tags, :idempotency_key
|
9
|
+
|
10
|
+
# @param account_id [String]
|
11
|
+
# @param amount [Integer]
|
12
|
+
# @param description [String]
|
13
|
+
# @param tags [Hash] - optional
|
14
|
+
# @param idempotency_key [String] - optional
|
15
|
+
def initialize(account_id, amount, description, tags = nil, idempotency_key = nil)
|
16
|
+
@account_id = account_id
|
17
|
+
@amount = amount
|
18
|
+
@description = description
|
19
|
+
@tags = tags
|
20
|
+
@idempotency_key = idempotency_key
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_json_api
|
24
|
+
payload = {
|
25
|
+
"data": {
|
26
|
+
"type": "checkDeposit",
|
27
|
+
"attributes": {
|
28
|
+
amount: amount,
|
29
|
+
description: description,
|
30
|
+
tags: tags,
|
31
|
+
idempotency_key: idempotency_key
|
32
|
+
},
|
33
|
+
"relationships": {
|
34
|
+
"account": Unit::Types::Relationship.new("account", account_id).to_hash
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
payload[:data][:attributes].compact!
|
39
|
+
payload.to_json
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to get a check deposit image
|
4
|
+
# @see https://docs.unit.co/check-deposits#get-specific-check-deposit-front-image
|
5
|
+
# @see https://docs.unit.co/check-deposits#get-specific-check-deposit-back-image
|
6
|
+
module Unit
|
7
|
+
module CheckDeposit
|
8
|
+
class GetImageRequest
|
9
|
+
attr_reader :deposit_id, :is_front_side
|
10
|
+
|
11
|
+
# @param deposit_id [String]
|
12
|
+
# @param is_front_side [Boolean] - optional
|
13
|
+
def initialize(deposit_id, is_front_side: true)
|
14
|
+
@deposit_id = deposit_id
|
15
|
+
@is_front_side = is_front_side
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to get check deposit by id
|
4
|
+
# @see https://docs.unit.co/check-deposits#get-specific-check-deposit
|
5
|
+
module Unit
|
6
|
+
module CheckDeposit
|
7
|
+
class GetRequest
|
8
|
+
attr_reader :deposit_id, :include
|
9
|
+
|
10
|
+
# @param deposit_id [String]
|
11
|
+
# @param include [Array<String>] - optional
|
12
|
+
def initialize(deposit_id, include = nil)
|
13
|
+
@deposit_id = deposit_id
|
14
|
+
@include = include
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_hash
|
18
|
+
{ include: include&.join(",") }.compact
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to list check deposits
|
4
|
+
# @see https://docs.unit.co/check-deposits#list-check-deposits
|
5
|
+
module Unit
|
6
|
+
module CheckDeposit
|
7
|
+
class ListDepositParams
|
8
|
+
attr_reader :limit, :offset, :account_id, :customer_id, :tags, :sort, :include
|
9
|
+
|
10
|
+
# @param limit [Integer] - optional
|
11
|
+
# @param offset [Integer] - optional
|
12
|
+
# @param account_id [String] - optional
|
13
|
+
# @param customer_id [String] - optional
|
14
|
+
# @param tags [Hash] - optional
|
15
|
+
# @param sort [String] - optional
|
16
|
+
# @param include [Array<String>] - optional
|
17
|
+
def initialize(limit = CHECK_DEPOSIT_LIMIT, offset = CHECK_DEPOSIT_OFFSET, account_id = nil,
|
18
|
+
customer_id = nil, tags = nil, sort = nil, include = nil)
|
19
|
+
@limit = limit
|
20
|
+
@offset = offset
|
21
|
+
@account_id = account_id
|
22
|
+
@customer_id = customer_id
|
23
|
+
@tags = tags
|
24
|
+
@sort = sort
|
25
|
+
@include = include
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_hash
|
29
|
+
params = {
|
30
|
+
"page[limit]": limit,
|
31
|
+
"page[offset]": offset,
|
32
|
+
"filter[accountId]": account_id,
|
33
|
+
"filter[customerId]": customer_id,
|
34
|
+
"filter[tags]": tags,
|
35
|
+
"sort": sort,
|
36
|
+
"include": include&.join(",")
|
37
|
+
}
|
38
|
+
params.compact
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to update check deposit
|
4
|
+
# @see https://docs.unit.co/check-deposits#update-check-deposit
|
5
|
+
module Unit
|
6
|
+
module CheckDeposit
|
7
|
+
class PatchDepositRequest
|
8
|
+
attr_reader :deposit_id, :tags
|
9
|
+
|
10
|
+
# @param deposit_id [String]
|
11
|
+
# @param tags [Hash] - optional
|
12
|
+
def initialize(deposit_id, tags)
|
13
|
+
@deposit_id = deposit_id
|
14
|
+
@tags = tags
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_json_api
|
18
|
+
payload = {
|
19
|
+
data: {
|
20
|
+
type: "checkDeposit",
|
21
|
+
attributes: { tags: tags }
|
22
|
+
}
|
23
|
+
}
|
24
|
+
payload[:data][:attributes].compact!
|
25
|
+
payload.to_json
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to upload a check deposit image
|
4
|
+
# @see https://docs.unit.co/check-deposits#upload-front-side-image
|
5
|
+
# @see https://docs.unit.co/check-deposits#upload-back-side-image
|
6
|
+
|
7
|
+
module Unit
|
8
|
+
module CheckDeposit
|
9
|
+
class UploadImageRequest
|
10
|
+
attr_reader :deposit_id, :file_content, :is_front_side
|
11
|
+
|
12
|
+
# @param deposit_id [String]
|
13
|
+
# @param file_content [String]
|
14
|
+
# @param is_front_side [Boolean] - optional
|
15
|
+
def initialize(deposit_id, file_content, is_front_side: true)
|
16
|
+
@deposit_id = deposit_id
|
17
|
+
@file_content = file_content
|
18
|
+
@is_front_side = is_front_side
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Unit
|
4
|
+
module Types
|
5
|
+
class Coordinates
|
6
|
+
attr_reader :latitude, :longitude
|
7
|
+
|
8
|
+
# @param latitude [Float] The latitude
|
9
|
+
# @param longitude [Float] The longitude
|
10
|
+
def initialize(latitude, longitude)
|
11
|
+
@latitude = latitude
|
12
|
+
@longitude = longitude
|
13
|
+
end
|
14
|
+
|
15
|
+
def represent
|
16
|
+
params = {
|
17
|
+
longitude: longitude,
|
18
|
+
latitude: latitude
|
19
|
+
}
|
20
|
+
params.compact.to_json
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -5,8 +5,10 @@ require "net/http"
|
|
5
5
|
require "json"
|
6
6
|
|
7
7
|
module HttpHelper
|
8
|
-
|
9
|
-
|
8
|
+
VALUES = [:"filter[searchRadius]"].freeze
|
9
|
+
RESPONSE_TYPES = %w[delete image].freeze
|
10
|
+
def self.get(url, headers:, params: nil, response_type: nil)
|
11
|
+
make_request(Net::HTTP::Get, url, headers, params: params, response_type: response_type)
|
10
12
|
end
|
11
13
|
|
12
14
|
def self.post(url, headers:, body: nil)
|
@@ -21,11 +23,11 @@ module HttpHelper
|
|
21
23
|
make_request(Net::HTTP::Patch, url, headers, body: body)
|
22
24
|
end
|
23
25
|
|
24
|
-
def self.delete(url, headers:, body: nil)
|
25
|
-
make_request(Net::HTTP::Delete, url, headers, body: body)
|
26
|
+
def self.delete(url, headers:, body: nil, response_type: nil)
|
27
|
+
make_request(Net::HTTP::Delete, url, headers, body: body, response_type: response_type)
|
26
28
|
end
|
27
29
|
|
28
|
-
def self.make_request(net_http, url, headers, body: nil, params: nil)
|
30
|
+
def self.make_request(net_http, url, headers, body: nil, params: nil, response_type: nil)
|
29
31
|
uri = params.nil? ? URI(url) : URI("#{url}?#{encode(params)}")
|
30
32
|
host = uri.host.to_s
|
31
33
|
port = uri.port
|
@@ -35,20 +37,20 @@ module HttpHelper
|
|
35
37
|
request = net_http.new uri, headers
|
36
38
|
request.body = body unless body.nil?
|
37
39
|
response = http.request request
|
38
|
-
response.body = response_check(response)
|
40
|
+
response.body = response_check(response, response_type)
|
39
41
|
response
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
43
|
-
def self.response_check(response)
|
44
|
-
if response.body.include?("html") || response.body.include?("PDF")
|
45
|
+
def self.response_check(response, response_type = nil)
|
46
|
+
if RESPONSE_TYPES.include?(response_type) || response.body.include?("html") || response.body.include?("PDF")
|
45
47
|
response.body
|
46
48
|
else
|
47
49
|
JSON.parse(response.body)
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
51
|
-
def self.
|
53
|
+
def self.value_check(value, key = nil)
|
52
54
|
case value
|
53
55
|
when Hash then value.map { |k, v| encode(v, append_key(key, k)) }.join("&")
|
54
56
|
when Array then value.map { |v| encode(v, "#{key}[]") }.join("&")
|
@@ -58,6 +60,10 @@ module HttpHelper
|
|
58
60
|
end
|
59
61
|
end
|
60
62
|
|
63
|
+
def self.encode(value, key = nil)
|
64
|
+
value.instance_of?(Hash) && value.key?(VALUES.map { |val| val }) ? value.map { |k, v| "#{k}=#{v}" }.join("&") : value_check(value, key)
|
65
|
+
end
|
66
|
+
|
61
67
|
def self.append_key(root_key, key)
|
62
68
|
root_key.nil? ? key : "#{root_key}[#{key}]"
|
63
69
|
end
|
data/lib/unit/version.rb
CHANGED
data/lib/unit_ruby_sdk.rb
CHANGED
@@ -11,7 +11,8 @@ module Unit
|
|
11
11
|
autoload :Transaction, "unit/models/transaction/transaction"
|
12
12
|
autoload :Card, "unit/models/card/card"
|
13
13
|
autoload :Statement, "unit/models/statement/statement"
|
14
|
-
|
14
|
+
autoload :AtmLocation, "unit/models/atm_location/atm_location"
|
15
|
+
autoload :CheckDeposit, "unit/models/check_deposit/check_deposit"
|
15
16
|
module Resource
|
16
17
|
autoload :ApplicationResource, "unit/api_resources/application_resource"
|
17
18
|
autoload :CustomerResource, "unit/api_resources/customer_resource"
|
@@ -21,6 +22,8 @@ module Unit
|
|
21
22
|
autoload :TransactionResource, "unit/api_resources/transaction_resource"
|
22
23
|
autoload :CardResource, "unit/api_resources/card_resource"
|
23
24
|
autoload :StatementResource, "unit/api_resources/statement_resource"
|
25
|
+
autoload :AtmLocationResource, "unit/api_resources/atm_location_resource"
|
26
|
+
autoload :CheckDepositResource, "unit/api_resources/check_deposit_resource"
|
24
27
|
end
|
25
28
|
|
26
29
|
module Types
|
@@ -37,6 +40,8 @@ module Unit
|
|
37
40
|
autoload :Relationship, "unit/types/relationship"
|
38
41
|
autoload :RelationshipArray, "unit/types/relationship_array"
|
39
42
|
autoload :RestrictedResource, "unit/types/restricted_resource"
|
43
|
+
autoload :DocumentFileType, "unit/types/document_file_type"
|
44
|
+
autoload :Coordinates, "unit/types/coordinates"
|
40
45
|
end
|
41
46
|
|
42
47
|
autoload :UnitErrorPayload, "unit/errors/unit_error_payload"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unit_ruby_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Unit
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01
|
11
|
+
date: 2023-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: factory_bot_rails
|
@@ -97,8 +97,10 @@ files:
|
|
97
97
|
- lib/unit/api_resources/account_resource.rb
|
98
98
|
- lib/unit/api_resources/api_token_resource.rb
|
99
99
|
- lib/unit/api_resources/application_resource.rb
|
100
|
+
- lib/unit/api_resources/atm_location_resource.rb
|
100
101
|
- lib/unit/api_resources/base_resource.rb
|
101
102
|
- lib/unit/api_resources/card_resource.rb
|
103
|
+
- lib/unit/api_resources/check_deposit_resource.rb
|
102
104
|
- lib/unit/api_resources/customer_resource.rb
|
103
105
|
- lib/unit/api_resources/payment_resource.rb
|
104
106
|
- lib/unit/api_resources/statement_resource.rb
|
@@ -124,6 +126,10 @@ files:
|
|
124
126
|
- lib/unit/models/application/list_application_params.rb
|
125
127
|
- lib/unit/models/application/patch_application_request.rb
|
126
128
|
- lib/unit/models/application/upload_document_request.rb
|
129
|
+
- lib/unit/models/atm_location/atm_location.rb
|
130
|
+
- lib/unit/models/atm_location/list_by_address_params.rb
|
131
|
+
- lib/unit/models/atm_location/list_by_coordinates_params.rb
|
132
|
+
- lib/unit/models/atm_location/list_by_postal_code_params.rb
|
127
133
|
- lib/unit/models/card/card.rb
|
128
134
|
- lib/unit/models/card/create_business_debit_card_request.rb
|
129
135
|
- lib/unit/models/card/create_business_virtual_debit_card_request.rb
|
@@ -131,6 +137,13 @@ files:
|
|
131
137
|
- lib/unit/models/card/create_individual_virtual_card_request.rb
|
132
138
|
- lib/unit/models/card/list_card_params.rb
|
133
139
|
- lib/unit/models/card/replace_card_request.rb
|
140
|
+
- lib/unit/models/check_deposit/check_deposit.rb
|
141
|
+
- lib/unit/models/check_deposit/create_check_deposit_request.rb
|
142
|
+
- lib/unit/models/check_deposit/get_image_request.rb
|
143
|
+
- lib/unit/models/check_deposit/get_request.rb
|
144
|
+
- lib/unit/models/check_deposit/list_deposit_params.rb
|
145
|
+
- lib/unit/models/check_deposit/patch_deposit_request.rb
|
146
|
+
- lib/unit/models/check_deposit/upload_image_request.rb
|
134
147
|
- lib/unit/models/customer/add_authorized_users_request.rb
|
135
148
|
- lib/unit/models/customer/archive_customer_request.rb
|
136
149
|
- lib/unit/models/customer/customer.rb
|
@@ -156,7 +169,9 @@ files:
|
|
156
169
|
- lib/unit/types/authorized_user.rb
|
157
170
|
- lib/unit/types/beneficial_owner.rb
|
158
171
|
- lib/unit/types/business_contact.rb
|
172
|
+
- lib/unit/types/coordinates.rb
|
159
173
|
- lib/unit/types/device_fingerprint.rb
|
174
|
+
- lib/unit/types/document_file_type.rb
|
160
175
|
- lib/unit/types/evaluation_params.rb
|
161
176
|
- lib/unit/types/full_name.rb
|
162
177
|
- lib/unit/types/officer.rb
|