unit_ruby_sdk 1.0.5 → 1.2.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 +4 -4
- data/README.md +190 -19
- data/lib/unit/api_resources/application_form_resource.rb +40 -0
- data/lib/unit/api_resources/authorization_request_resource.rb +49 -0
- data/lib/unit/api_resources/authorization_resource.rb +31 -0
- data/lib/unit/api_resources/card_resource.rb +8 -0
- data/lib/unit/api_resources/event_resource.rb +40 -0
- data/lib/unit/api_resources/fee_resource.rb +32 -0
- data/lib/unit/api_resources/payment_resource.rb +17 -0
- data/lib/unit/api_resources/received_payment_resource.rb +47 -0
- data/lib/unit/api_resources/recurring_payment_resource.rb +55 -0
- data/lib/unit/api_resources/repayment_resource.rb +41 -0
- data/lib/unit/api_resources/reward_resource.rb +41 -0
- data/lib/unit/api_resources/webhook_resource.rb +65 -0
- data/lib/unit/models/application/application.rb +98 -10
- data/lib/unit/models/application/create_business_application_request.rb +34 -13
- data/lib/unit/models/application/create_individual_application_request.rb +12 -8
- data/lib/unit/models/application/create_sole_proprietor_application_request.rb +113 -0
- data/lib/unit/models/application/create_trust_application_request.rb +67 -0
- data/lib/unit/models/application/patch_trust_application_request.rb +31 -0
- data/lib/unit/models/application_form/application_form.rb +43 -0
- data/lib/unit/models/application_form/create_application_form_request.rb +48 -0
- data/lib/unit/models/application_form/list_application_form_params.rb +30 -0
- data/lib/unit/models/authorization/authorization.rb +42 -0
- data/lib/unit/models/authorization/get_request.rb +22 -0
- data/lib/unit/models/authorization/list_request.rb +67 -0
- data/lib/unit/models/authorization_request/approve_request.rb +37 -0
- data/lib/unit/models/authorization_request/authorization_request.rb +55 -0
- data/lib/unit/models/authorization_request/decline_request.rb +31 -0
- data/lib/unit/models/authorization_request/list_authorization_params.rb +44 -0
- data/lib/unit/models/card/card.rb +102 -4
- data/lib/unit/models/card/create_business_credit_card_request.rb +29 -0
- data/lib/unit/models/card/create_business_debit_card_request.rb +10 -6
- data/lib/unit/models/card/create_business_virtual_credit_card_request.rb +25 -0
- data/lib/unit/models/card/create_business_virtual_debit_card_request.rb +10 -6
- data/lib/unit/models/card/create_individual_debit_card_request.rb +7 -3
- data/lib/unit/models/card/create_individual_virtual_card_request.rb +6 -3
- data/lib/unit/models/card/patch_business_card_request.rb +50 -0
- data/lib/unit/models/card/patch_business_credit_card_request.rb +22 -0
- data/lib/unit/models/card/patch_business_virtual_card_request.rb +43 -0
- data/lib/unit/models/card/patch_business_virtual_credit_card_request.rb +20 -0
- data/lib/unit/models/customer/list_customer_params.rb +4 -2
- data/lib/unit/models/event/event.rb +37 -0
- data/lib/unit/models/event/list_event_params.rb +37 -0
- data/lib/unit/models/fee/create_fee_request.rb +43 -0
- data/lib/unit/models/fee/fee.rb +34 -0
- data/lib/unit/models/fee/reverse_fee_request.rb +43 -0
- data/lib/unit/models/payment/batch_release_request_builder.rb +21 -0
- data/lib/unit/models/payment/bulk_payment_request.rb +15 -0
- data/lib/unit/models/payment/create_ach_payment_inline_request.rb +29 -19
- data/lib/unit/models/payment/create_batch_release_request.rb +54 -0
- data/lib/unit/models/payment/create_book_payment_request.rb +24 -14
- data/lib/unit/models/payment/create_payment_linked_request.rb +31 -21
- data/lib/unit/models/payment/create_wire_payment_request.rb +22 -12
- data/lib/unit/models/payment/create_with_plaid_token_request.rb +32 -22
- data/lib/unit/models/payment/payment.rb +40 -12
- data/lib/unit/models/received_payment/list_payment_params.rb +51 -0
- data/lib/unit/models/received_payment/patch_payment_request.rb +31 -0
- data/lib/unit/models/received_payment/received_payment.rb +54 -0
- data/lib/unit/models/recurring_payment/create_recurring_credit_ach_payment_request.rb +52 -0
- data/lib/unit/models/recurring_payment/create_recurring_credit_book_payment_request.rb +54 -0
- data/lib/unit/models/recurring_payment/create_recurring_debit_ach_payment_request.rb +60 -0
- data/lib/unit/models/recurring_payment/list_recurring_payment_params.rb +60 -0
- data/lib/unit/models/recurring_payment/recurring_payment.rb +106 -0
- data/lib/unit/models/repayment/create_ach_repayment_request.rb +57 -0
- data/lib/unit/models/repayment/create_book_repayment_request.rb +53 -0
- data/lib/unit/models/repayment/list_repayment_params.rb +48 -0
- data/lib/unit/models/repayment/repayment.rb +67 -0
- data/lib/unit/models/reward/create_reward_request.rb +49 -0
- data/lib/unit/models/reward/get_request.rb +22 -0
- data/lib/unit/models/reward/list_reward_params.rb +65 -0
- data/lib/unit/models/reward/reward.rb +55 -0
- data/lib/unit/models/unit_response.rb +1 -1
- data/lib/unit/models/webhook/create_webhook_request.rb +49 -0
- data/lib/unit/models/webhook/list_webhook_params.rb +39 -0
- data/lib/unit/models/webhook/patch_webhook_request.rb +47 -0
- data/lib/unit/models/webhook/webhook.rb +80 -0
- data/lib/unit/types/application_form_prefill.rb +84 -0
- data/lib/unit/types/application_form_settings_override.rb +51 -0
- data/lib/unit/types/beneficial_owner.rb +15 -10
- data/lib/unit/types/beneficiary.rb +25 -0
- data/lib/unit/types/create_schedule.rb +38 -0
- data/lib/unit/types/evaluation_params.rb +4 -4
- data/lib/unit/types/grantor.rb +37 -0
- data/lib/unit/types/officer.rb +26 -13
- data/lib/unit/types/power_of_attorney_agent.rb +5 -12
- data/lib/unit/types/require_id_verification.rb +29 -0
- data/lib/unit/types/trust_contact.rb +34 -0
- data/lib/unit/types/trustee.rb +37 -0
- data/lib/unit/version.rb +1 -1
- data/lib/unit_ruby_sdk.rb +28 -0
- metadata +67 -2
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to create webhook
|
4
|
+
# @see https://docs.unit.co/webhooks#create-webhook
|
5
|
+
module Unit
|
6
|
+
module Webhook
|
7
|
+
class CreateWebhookRequest
|
8
|
+
attr_accessor :label, :url, :token, :content_type, :delivery_mode,
|
9
|
+
:include_resources, :subscription_type
|
10
|
+
|
11
|
+
# @param label [String]
|
12
|
+
# @param url [String]
|
13
|
+
# @param token [String]
|
14
|
+
# @param content_type [String]
|
15
|
+
# @param delivery_mode [String]
|
16
|
+
# @param include_resources [Boolean] - optional
|
17
|
+
# @param subscription_type [String] - optional
|
18
|
+
def initialize(label, url, token, content_type, delivery_mode,
|
19
|
+
include_resources = nil, subscription_type = nil)
|
20
|
+
@label = label
|
21
|
+
@url = url
|
22
|
+
@token = token
|
23
|
+
@content_type = content_type
|
24
|
+
@delivery_mode = delivery_mode
|
25
|
+
@include_resources = include_resources
|
26
|
+
@subscription_type = subscription_type
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_json_api
|
30
|
+
payload = {
|
31
|
+
data: {
|
32
|
+
type: "webhook",
|
33
|
+
attributes: {
|
34
|
+
label: label,
|
35
|
+
url: url,
|
36
|
+
token: token,
|
37
|
+
contentType: content_type,
|
38
|
+
deliveryMode: delivery_mode,
|
39
|
+
includeResources: include_resources,
|
40
|
+
subscriptionType: subscription_type
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
payload[:data][:attributes].compact!
|
45
|
+
payload.to_json
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to list webhooks
|
4
|
+
# @see https://docs.unit.co/webhooks#list-webhooks
|
5
|
+
module Unit
|
6
|
+
module Webhook
|
7
|
+
class ListWebhookParams
|
8
|
+
attr_accessor :limit, :offset, :since, :until_, :from_id, :told
|
9
|
+
|
10
|
+
# @param limit [Integer]
|
11
|
+
# @param offset [Integer]
|
12
|
+
# @param since [String] - optional
|
13
|
+
# @param until_ [String] - optional
|
14
|
+
# @param from_id [Integer] - optional
|
15
|
+
# @param told [Integer] - optional
|
16
|
+
def initialize(limit = WEBHOOK_LIMIT, offset = WEBHOOK_OFFSET, since = nil,
|
17
|
+
until_ = nil, from_id = nil, told = nil)
|
18
|
+
@limit = limit
|
19
|
+
@offset = offset
|
20
|
+
@since = since
|
21
|
+
@until_ = until_
|
22
|
+
@from_id = from_id
|
23
|
+
@told = told
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_hash
|
27
|
+
payload = {
|
28
|
+
"page[limit]": limit,
|
29
|
+
"page[offset]": offset,
|
30
|
+
"filter[since]": since,
|
31
|
+
"filter[until]": until_,
|
32
|
+
"filter[fromId]": from_id,
|
33
|
+
"filter[told]": told
|
34
|
+
}
|
35
|
+
payload.compact!
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Request to patch webhook
|
4
|
+
# @see https://docs.unit.co/webhooks#update-webhook
|
5
|
+
module Unit
|
6
|
+
module Webhook
|
7
|
+
class PatchWebhookRequest
|
8
|
+
attr_reader :webhook_id, :label, :url, :token, :content_type, :token, :include_resources, :subscription_type
|
9
|
+
|
10
|
+
# @param webhook_id [String]
|
11
|
+
# @param label [String]
|
12
|
+
# @param url [String]
|
13
|
+
# @param content_type [String]
|
14
|
+
# @param token [String]
|
15
|
+
# @param include_resources [Boolean] - optional
|
16
|
+
# @param subscription_type [String] - optional
|
17
|
+
def initialize(webhook_id, label, url, content_type, token,
|
18
|
+
include_resources = nil, subscription_type = nil)
|
19
|
+
@webhook_id = webhook_id
|
20
|
+
@label = label
|
21
|
+
@url = url
|
22
|
+
@token = token
|
23
|
+
@content_type = content_type
|
24
|
+
@include_resources = include_resources
|
25
|
+
@subscription_type = subscription_type
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_json_api
|
29
|
+
payload = {
|
30
|
+
data: {
|
31
|
+
type: "webhook",
|
32
|
+
attributes: {
|
33
|
+
label: label,
|
34
|
+
url: url,
|
35
|
+
content_type: content_type,
|
36
|
+
token: token,
|
37
|
+
include_resources: include_resources,
|
38
|
+
subscription_type: subscription_type
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
payload[:data][:attributes].compact!
|
43
|
+
payload.to_json
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Unit
|
4
|
+
module Webhook
|
5
|
+
class << self
|
6
|
+
WEBHOOK_LIMIT = 100
|
7
|
+
WEBHOOK_OFFSET = 0
|
8
|
+
autoload :CreateWebhookRequest, "unit/models/webhook/create_webhook_request"
|
9
|
+
autoload :ListWebhookParams, "unit/models/webhook/list_webhook_params"
|
10
|
+
autoload :PatchWebhookRequest, "unit/models/webhook/patch_webhook_request"
|
11
|
+
|
12
|
+
# Create a webhook
|
13
|
+
# @see https://docs.unit.co/webhooks#create-webhook
|
14
|
+
# @param label [String]
|
15
|
+
# @param url [String]
|
16
|
+
# @param token [String]
|
17
|
+
# @param content_type [String]
|
18
|
+
# @param delivery_mode [String]
|
19
|
+
# @param include_resources [Boolean] - optional
|
20
|
+
# @param subscription_type [String] - optional
|
21
|
+
def create_webhook(label:, url:, token:, content_type:, delivery_mode:,
|
22
|
+
include_resources: nil, subscription_type: nil)
|
23
|
+
request = CreateWebhookRequest.new(label, url, token, content_type, delivery_mode,
|
24
|
+
include_resources, subscription_type)
|
25
|
+
Unit::Resource::WebhookResource.create_webhook(request)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Request to list webhooks
|
29
|
+
# @see https://docs.unit.co/webhooks#list-webhooks
|
30
|
+
# @param limit [Integer]
|
31
|
+
# @param offset [Integer]
|
32
|
+
# @param since [String] - optional
|
33
|
+
# @param until_ [String] - optional
|
34
|
+
# @param from_id [Integer] - optional
|
35
|
+
# @param told [Integer] - optional
|
36
|
+
def list_webhooks(limit: WEBHOOK_LIMIT, offset: WEBHOOK_OFFSET, since: nil,
|
37
|
+
until_: nil, from_id: nil, told: nil)
|
38
|
+
request = ListWebhookParams.new(limit, offset, since, until_, from_id, told)
|
39
|
+
Unit::Resource::WebhookResource.list_webhooks(request)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Request to patch webhook
|
43
|
+
# @see https://docs.unit.co/webhooks#update-webhook
|
44
|
+
# @param webhook_id [String]
|
45
|
+
# @param label [String]
|
46
|
+
# @param url [String]
|
47
|
+
# @param content_type [String]
|
48
|
+
# @param token [String]
|
49
|
+
# @param include_resources [Boolean] - optional
|
50
|
+
# @param subscription_type [String] - optional
|
51
|
+
def update_webhook(webhook_id:, label:, url:, content_type:, token:,
|
52
|
+
include_resources: nil, subscription_type: nil)
|
53
|
+
request = PatchWebhookRequest.new(webhook_id, label, url, content_type, token,
|
54
|
+
include_resources, subscription_type)
|
55
|
+
Unit::Resource::WebhookResource.update_webhook(request)
|
56
|
+
end
|
57
|
+
|
58
|
+
# Request to get a webhook
|
59
|
+
# @see https://docs.unit.co/webhooks#get-webhook
|
60
|
+
# @param webhook_id [String]
|
61
|
+
def get_webhook(webhook_id:)
|
62
|
+
Unit::Resource::WebhookResource.get_webhook(webhook_id)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Request to enable a webhook
|
66
|
+
# @see https://docs.unit.co/webhooks#enable
|
67
|
+
# @param webhook_id [String]
|
68
|
+
def enable_webhook(webhook_id:)
|
69
|
+
Unit::Resource::WebhookResource.enable_webhook(webhook_id)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Request to disable a webhook
|
73
|
+
# @see https://docs.unit.co/webhooks#disable
|
74
|
+
# @param webhook_id [String]
|
75
|
+
def disable_webhook(webhook_id:)
|
76
|
+
Unit::Resource::WebhookResource.disable_webhook(webhook_id)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Type representing application form prefill
|
4
|
+
# @see https://docs.unit.co/types#applicationformprefill
|
5
|
+
module Unit
|
6
|
+
module Types
|
7
|
+
class ApplicationFormPrefill
|
8
|
+
attr_reader :application_type, :full_name, :ssn, :passport, :nationality, :date_of_birth, :email,
|
9
|
+
:name, :state_of_incorporation, :entity_type, :contact, :officer, :beneficial_owners,
|
10
|
+
:website, :dba, :ein, :industry, :address, :phone, :jwt_subject
|
11
|
+
|
12
|
+
# @param application_type [Array<String>] - optional
|
13
|
+
# @param full_name [FullName] - optional
|
14
|
+
# @param ssn [String] - optional
|
15
|
+
# @param passport [String] - optional
|
16
|
+
# @param nationality [String] - optional
|
17
|
+
# @param date_of_birth [Date] - optional
|
18
|
+
# @param email [String] - optional
|
19
|
+
# @param name [String] - optional
|
20
|
+
# @param state_of_incorporation [String] - optional
|
21
|
+
# @param entity_type [String] - optional
|
22
|
+
# @param contact [BusinessContact] - optional
|
23
|
+
# @param officer [Officer] - optional
|
24
|
+
# @param beneficial_owners [Array<BeneficialOwner>] - optional
|
25
|
+
# @param website [String] - optional
|
26
|
+
# @param dba [String] - optional
|
27
|
+
# @param ein [String] - optional
|
28
|
+
# @param industry [String] - optional
|
29
|
+
# @param address [Address] - optional
|
30
|
+
# @param phone [Phone] - optional
|
31
|
+
def initialize(application_type = nil, full_name = nil, ssn = nil, passport = nil, nationality = nil,
|
32
|
+
date_of_birth = nil, email = nil, name = nil, state_of_incorporation = nil, entity_type = nil,
|
33
|
+
contact = nil, officer = nil, beneficial_owners = nil, website = nil, dba = nil, ein = nil,
|
34
|
+
industry = nil, address = nil, phone = nil, jwt_subject = nil)
|
35
|
+
@application_type = application_type
|
36
|
+
@full_name = full_name
|
37
|
+
@ssn = ssn
|
38
|
+
@passport = passport
|
39
|
+
@nationality = nationality
|
40
|
+
@date_of_birth = date_of_birth
|
41
|
+
@email = email
|
42
|
+
@name = name
|
43
|
+
@state_of_incorporation = state_of_incorporation
|
44
|
+
@entity_type = entity_type
|
45
|
+
@contact = contact
|
46
|
+
@officer = officer
|
47
|
+
@beneficial_owners = beneficial_owners
|
48
|
+
@website = website
|
49
|
+
@dba = dba
|
50
|
+
@ein = ein
|
51
|
+
@industry = industry
|
52
|
+
@address = address
|
53
|
+
@phone = phone
|
54
|
+
@jwt_subject = jwt_subject
|
55
|
+
end
|
56
|
+
|
57
|
+
def represent
|
58
|
+
payload = {
|
59
|
+
applicationType: application_type,
|
60
|
+
fullName: full_name&.represent,
|
61
|
+
ssn: ssn,
|
62
|
+
passport: passport,
|
63
|
+
nationality: nationality,
|
64
|
+
dateOfBirth: date_of_birth,
|
65
|
+
email: email,
|
66
|
+
name: name,
|
67
|
+
stateOfIncorporation: state_of_incorporation,
|
68
|
+
entityType: entity_type,
|
69
|
+
contact: contact&.represent,
|
70
|
+
officer: officer&.represent,
|
71
|
+
beneficialOwners: beneficial_owners,
|
72
|
+
website: website,
|
73
|
+
dba: dba,
|
74
|
+
ein: ein,
|
75
|
+
industry: industry,
|
76
|
+
address: address&.represent,
|
77
|
+
phone: phone&.represent,
|
78
|
+
jwtSubject: jwt_subject
|
79
|
+
}
|
80
|
+
payload.compact
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Type representing application form settings override
|
4
|
+
# @see https://docs.unit.co/types#applicationformsettingsoverride
|
5
|
+
module Unit
|
6
|
+
module Types
|
7
|
+
class ApplicationFormSettingsOverride
|
8
|
+
attr_reader :redirect_url, :privacy_policy_url, :electronic_disclosures_url, :deposit_terms_url,
|
9
|
+
:client_terms_url, :cardholder_terms_url, :cash_advanced_terms_url, :debit_card_disclosure_url,
|
10
|
+
:additional_disclosures
|
11
|
+
|
12
|
+
# @param redirect_url [String] - optional
|
13
|
+
# @param privacy_policy_url [String] - optional
|
14
|
+
# @param electronic_disclosures_url [String] - optional
|
15
|
+
# @param deposit_terms_url [String] - optional
|
16
|
+
# @param client_terms_url [String] - optional
|
17
|
+
# @param cardholder_terms_url [String] - optional
|
18
|
+
# @param cash_advanced_terms_url [String] - optional
|
19
|
+
# @param debit_card_disclosure_url [String] - optional
|
20
|
+
# @param additional_disclosures [Array] - optional
|
21
|
+
def initialize(redirect_url = nil, privacy_policy_url = nil, electronic_disclosures_url = nil, deposit_terms_url = nil,
|
22
|
+
client_terms_url = nil, cardholder_terms_url = nil, cash_advanced_terms_url = nil, debit_card_disclosure_url = nil,
|
23
|
+
additional_disclosures = nil)
|
24
|
+
@redirect_url = redirect_url
|
25
|
+
@privacy_policy_url = privacy_policy_url
|
26
|
+
@electronic_disclosures_url = electronic_disclosures_url
|
27
|
+
@deposit_terms_url = deposit_terms_url
|
28
|
+
@client_terms_url = client_terms_url
|
29
|
+
@cardholder_terms_url = cardholder_terms_url
|
30
|
+
@cash_advanced_terms_url = cash_advanced_terms_url
|
31
|
+
@debit_card_disclosure_url = debit_card_disclosure_url
|
32
|
+
@additional_disclosures = additional_disclosures
|
33
|
+
end
|
34
|
+
|
35
|
+
def represent
|
36
|
+
payload = {
|
37
|
+
redirectUrl: redirect_url,
|
38
|
+
privacyPolicyUrl: privacy_policy_url,
|
39
|
+
electronicDisclosuresUrl: electronic_disclosures_url,
|
40
|
+
depositTermsUrl: deposit_terms_url,
|
41
|
+
clientTermsUrl: client_terms_url,
|
42
|
+
cardholderTermsUrl: cardholder_terms_url,
|
43
|
+
cashAdvancedTermsUrl: cash_advanced_terms_url,
|
44
|
+
debitCardDisclosureUrl: debit_card_disclosure_url,
|
45
|
+
additionalDisclosures: additional_disclosures&.join(",")
|
46
|
+
}
|
47
|
+
payload.compact
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -6,16 +6,21 @@ module Unit
|
|
6
6
|
attr_reader :full_name, :date_of_birth, :address, :phone, :email,
|
7
7
|
:status, :ssn, :passport, :nationality, :percentage
|
8
8
|
|
9
|
-
# @param [FullName]
|
10
|
-
# @param [Date]
|
11
|
-
# @param [Address]
|
12
|
-
# @param [Phone]
|
13
|
-
# @param [String]
|
14
|
-
# @param [String]
|
15
|
-
# @param
|
16
|
-
# @param
|
17
|
-
# @param
|
18
|
-
# @param
|
9
|
+
# @param full_name [FullName]
|
10
|
+
# @param date_of_birth [Date]
|
11
|
+
# @param address [Address]
|
12
|
+
# @param phone [Phone]
|
13
|
+
# @param email [String]
|
14
|
+
# @param ssn [String]
|
15
|
+
# @param status [String] - optional
|
16
|
+
# @param passport [String] - optional
|
17
|
+
# @param nationality [String] - optional
|
18
|
+
# @param percentage [Integer] - optional
|
19
|
+
# @param evaluation_params [EvaluationParams] - optional
|
20
|
+
# @param id_theft_score [Integer] - optional
|
21
|
+
# @param occupation [String] - optional
|
22
|
+
# @param annual_income [String] - optional
|
23
|
+
# @param source_of_income [String] - optional
|
19
24
|
# @return [BeneficialOwner]
|
20
25
|
def initialize(full_name, date_of_birth, address, phone, email, ssn, status = nil, passport = nil,
|
21
26
|
nationality = nil, percentage = nil)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# @see https://docs.unit.co/types#beneficiary
|
4
|
+
module Unit
|
5
|
+
module Types
|
6
|
+
class Beneficiary
|
7
|
+
attr_reader :full_name, :date_of_birth
|
8
|
+
|
9
|
+
# @param full_name [FullName]
|
10
|
+
# @param date_of_birth [Date]
|
11
|
+
def initialize(full_name, date_of_birth = nil)
|
12
|
+
@full_name = full_name
|
13
|
+
@date_of_birth = date_of_birth
|
14
|
+
end
|
15
|
+
|
16
|
+
def represent
|
17
|
+
payload = {
|
18
|
+
fullName: full_name.represent,
|
19
|
+
dateOfBirth: date_of_birth
|
20
|
+
}
|
21
|
+
payload.compact
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Type for creating a schedule for recurring payments
|
4
|
+
# @see https://docs.unit.co/types#create-schedule
|
5
|
+
module Unit
|
6
|
+
module Types
|
7
|
+
class CreateSchedule
|
8
|
+
attr_reader :interval, :day_of_month, :day_of_week, :start_time, :end_time, :total_number_of_payments
|
9
|
+
|
10
|
+
# @param interval [String]
|
11
|
+
# @param day_of_month [Integer]
|
12
|
+
# @param day_of_week [String] - optional
|
13
|
+
# @param start_time [String] - optional
|
14
|
+
# @param end_time [String] - optional
|
15
|
+
# @param total_number_of_payments [Integer] - optional
|
16
|
+
def initialize(interval, day_of_month, day_of_week = nil, start_time = nil, end_time = nil, total_number_of_payments = nil)
|
17
|
+
@interval = interval
|
18
|
+
@day_of_month = day_of_month
|
19
|
+
@day_of_week = day_of_week
|
20
|
+
@start_time = start_time
|
21
|
+
@end_time = end_time
|
22
|
+
@total_number_of_payments = total_number_of_payments
|
23
|
+
end
|
24
|
+
|
25
|
+
def represent
|
26
|
+
payload = {
|
27
|
+
interval: interval,
|
28
|
+
dayOfMonth: day_of_month,
|
29
|
+
dayOfWeek: day_of_week,
|
30
|
+
startTime: start_time,
|
31
|
+
endTime: end_time,
|
32
|
+
totalNumberOfPayments: total_number_of_payments
|
33
|
+
}
|
34
|
+
payload.compact!
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -8,14 +8,14 @@ module Unit
|
|
8
8
|
|
9
9
|
def initialize(use_selfie_verification = nil, required_verification = nil)
|
10
10
|
@use_selfie_verification = use_selfie_verification
|
11
|
-
@
|
11
|
+
@required_verification = required_verification
|
12
12
|
end
|
13
13
|
|
14
14
|
def represent
|
15
15
|
{
|
16
|
-
|
17
|
-
|
18
|
-
}
|
16
|
+
useSelfieVerification: use_selfie_verification,
|
17
|
+
requiredVerification: required_verification
|
18
|
+
}.compact!
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# @see https://docs.unit.co/types#grantor
|
4
|
+
module Unit
|
5
|
+
module Types
|
6
|
+
class Grantor
|
7
|
+
attr_reader :full_name, :date_of_birth, :ssn, :email, :phone, :address
|
8
|
+
|
9
|
+
# @param full_name [FullName]
|
10
|
+
# @param ssn [String]
|
11
|
+
# @param email [String]
|
12
|
+
# @param phone [Phone]
|
13
|
+
# @param address [Address]
|
14
|
+
# @param date_of_birth [Date] - optional
|
15
|
+
def initialize(full_name, ssn, email, phone, address, date_of_birth = nil)
|
16
|
+
@full_name = full_name
|
17
|
+
@date_of_birth = date_of_birth
|
18
|
+
@ssn = ssn
|
19
|
+
@email = email
|
20
|
+
@phone = phone
|
21
|
+
@address = address
|
22
|
+
end
|
23
|
+
|
24
|
+
def represent
|
25
|
+
payload = {
|
26
|
+
fullName: full_name.represent,
|
27
|
+
dateOfBirth: date_of_birth,
|
28
|
+
ssn: ssn,
|
29
|
+
email: email,
|
30
|
+
phone: phone.represent,
|
31
|
+
address: address.represent
|
32
|
+
}
|
33
|
+
payload.compact
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/unit/types/officer.rb
CHANGED
@@ -4,21 +4,24 @@ module Unit
|
|
4
4
|
module Types
|
5
5
|
class Officer
|
6
6
|
attr_reader :full_name, :date_of_birth, :address, :phone, :email,
|
7
|
-
:status, :title, :ssn, :passport, :nationality
|
7
|
+
:status, :title, :ssn, :passport, :nationality,
|
8
|
+
:evaluation_params, :id_theft_score, :occupation,
|
9
|
+
:annual_income, :source_of_income
|
8
10
|
|
9
|
-
# @param [FullName]
|
10
|
-
# @param [Date]
|
11
|
-
# @param [Address]
|
12
|
-
# @param [Phone]
|
13
|
-
# @param [String]
|
14
|
-
# @param [String]
|
15
|
-
# @param
|
16
|
-
# @param
|
17
|
-
# @param
|
18
|
-
# @param
|
11
|
+
# @param full_name [FullName]
|
12
|
+
# @param date_of_birth [Date]
|
13
|
+
# @param address [Address]
|
14
|
+
# @param phone [Phone]
|
15
|
+
# @param email [String]
|
16
|
+
# @param ssn [String]
|
17
|
+
# @param status [String] - optional
|
18
|
+
# @param title [String] - optional
|
19
|
+
# @param passport [String] - optional
|
20
|
+
# @param nationality [String] - optional
|
19
21
|
def initialize(full_name, date_of_birth, address, phone, email, ssn,
|
20
22
|
status = nil, title = nil, passport = nil,
|
21
|
-
nationality = nil
|
23
|
+
nationality = nil, evaluation_params = nil, id_theft_score = nil, occupation = nil,
|
24
|
+
annual_income = nil, source_of_income = nil)
|
22
25
|
@full_name = full_name
|
23
26
|
@date_of_birth = date_of_birth
|
24
27
|
@address = address
|
@@ -29,6 +32,11 @@ module Unit
|
|
29
32
|
@ssn = ssn
|
30
33
|
@passport = passport
|
31
34
|
@nationality = nationality
|
35
|
+
@evaluation_params = evaluation_params
|
36
|
+
@id_theft_score = id_theft_score
|
37
|
+
@occupation = occupation
|
38
|
+
@annual_income = annual_income
|
39
|
+
@source_of_income = source_of_income
|
32
40
|
end
|
33
41
|
|
34
42
|
def represent
|
@@ -43,7 +51,12 @@ module Unit
|
|
43
51
|
status: status,
|
44
52
|
title: title,
|
45
53
|
passport: passport,
|
46
|
-
nationality: nationality
|
54
|
+
nationality: nationality,
|
55
|
+
evaluation_params: evaluation_params,
|
56
|
+
id_theft_score: id_theft_score,
|
57
|
+
occupation: occupation,
|
58
|
+
annual_income: annual_income,
|
59
|
+
source_of_income: source_of_income
|
47
60
|
}
|
48
61
|
payload.compact
|
49
62
|
end
|
@@ -1,27 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative "full_name"
|
4
|
-
require_relative "address"
|
5
|
-
require_relative "phone"
|
6
|
-
|
7
3
|
module Unit
|
8
4
|
module Types
|
9
5
|
class PowerOfAttorneyAgent
|
10
|
-
attr_reader :
|
6
|
+
attr_reader :full_name, :ssn, :passport, :nationality,
|
11
7
|
:date_of_birth, :address, :phone, :email, :jwt_subject
|
12
8
|
|
13
|
-
# @param [String] status
|
14
9
|
# @param [FullName] full_name
|
15
10
|
# @param [String] ssn
|
16
|
-
# @param [String] passport
|
17
11
|
# @param [String] nationality
|
18
12
|
# @param [Date] date_of_birth
|
19
13
|
# @param [Address] address
|
20
14
|
# @param [Phone] phone
|
21
15
|
# @param [String] email
|
22
|
-
# @param [String]
|
23
|
-
|
24
|
-
|
16
|
+
# @param [String] passport - optional
|
17
|
+
# @param [String] jwt_subject - optional
|
18
|
+
def initialize(full_name, ssn, nationality, date_of_birth, address, phone, email, passport = nil, jwt_subject = nil)
|
25
19
|
@full_name = full_name
|
26
20
|
@ssn = ssn
|
27
21
|
@passport = passport
|
@@ -35,7 +29,6 @@ module Unit
|
|
35
29
|
|
36
30
|
def represent
|
37
31
|
{
|
38
|
-
status: status,
|
39
32
|
fullName: full_name.represent,
|
40
33
|
ssn: ssn,
|
41
34
|
passport: passport,
|
@@ -45,7 +38,7 @@ module Unit
|
|
45
38
|
phone: phone.represent,
|
46
39
|
email: email,
|
47
40
|
jwtSubject: jwt_subject
|
48
|
-
}
|
41
|
+
}.compact!
|
49
42
|
end
|
50
43
|
end
|
51
44
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Type representing require id verification
|
4
|
+
# @see https://docs.unit.co/types#require-id-verification
|
5
|
+
module Unit
|
6
|
+
module Types
|
7
|
+
class RequireIdVerification
|
8
|
+
attr_reader :individual, :officer, :beneficial_owners
|
9
|
+
|
10
|
+
# @param individual [Boolean] - optional
|
11
|
+
# @param officer [Boolean] - optional
|
12
|
+
# @param beneficial_owners [Boolean] - optional
|
13
|
+
def initialize(individual = nil, officer = nil, beneficial_owners = nil)
|
14
|
+
@individual = individual
|
15
|
+
@officer = officer
|
16
|
+
@beneficial_owners = beneficial_owners
|
17
|
+
end
|
18
|
+
|
19
|
+
def represent
|
20
|
+
payload = {
|
21
|
+
individual: individual,
|
22
|
+
officer: officer,
|
23
|
+
beneficialOwners: beneficial_owners
|
24
|
+
}
|
25
|
+
payload.compact
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|