gocardless_pro 2.24.0 → 2.29.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +23 -4
- data/lib/gocardless_pro/api_service.rb +4 -0
- data/lib/gocardless_pro/client.rb +46 -1
- data/lib/gocardless_pro/error/authentication_error.rb +4 -0
- data/lib/gocardless_pro/error/permission_error.rb +4 -0
- data/lib/gocardless_pro/error/rate_limit_error.rb +4 -0
- data/lib/gocardless_pro/middlewares/raise_gocardless_errors.rb +12 -1
- data/lib/gocardless_pro/resources/bank_authorisation.rb +81 -0
- data/lib/gocardless_pro/resources/billing_request.rb +108 -0
- data/lib/gocardless_pro/resources/billing_request_flow.rb +72 -0
- data/lib/gocardless_pro/resources/billing_request_template.rb +68 -0
- data/lib/gocardless_pro/resources/block.rb +66 -0
- data/lib/gocardless_pro/resources/creditor.rb +2 -3
- data/lib/gocardless_pro/resources/event.rb +20 -0
- data/lib/gocardless_pro/resources/institution.rb +47 -0
- data/lib/gocardless_pro/resources/payer_authorisation.rb +131 -0
- data/lib/gocardless_pro/resources/payout_item.rb +4 -0
- data/lib/gocardless_pro/resources/redirect_flow.rb +2 -0
- data/lib/gocardless_pro/resources/scenario_simulator.rb +42 -0
- data/lib/gocardless_pro/resources/webhook.rb +62 -0
- data/lib/gocardless_pro/services/bank_authorisations_service.rb +80 -0
- data/lib/gocardless_pro/services/billing_request_flows_service.rb +70 -0
- data/lib/gocardless_pro/services/billing_request_templates_service.rb +131 -0
- data/lib/gocardless_pro/services/billing_requests_service.rb +352 -0
- data/lib/gocardless_pro/services/blocks_service.rb +223 -0
- data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +1 -5
- data/lib/gocardless_pro/services/creditors_service.rb +1 -3
- data/lib/gocardless_pro/services/currency_exchange_rates_service.rb +1 -1
- data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +1 -5
- data/lib/gocardless_pro/services/customers_service.rb +1 -3
- data/lib/gocardless_pro/services/events_service.rb +1 -1
- data/lib/gocardless_pro/services/instalment_schedules_service.rb +1 -7
- data/lib/gocardless_pro/services/institutions_service.rb +56 -0
- data/lib/gocardless_pro/services/mandate_import_entries_service.rb +1 -1
- data/lib/gocardless_pro/services/mandate_imports_service.rb +0 -6
- data/lib/gocardless_pro/services/mandates_service.rb +1 -7
- data/lib/gocardless_pro/services/payer_authorisations_service.rb +202 -0
- data/lib/gocardless_pro/services/payments_service.rb +1 -7
- data/lib/gocardless_pro/services/payout_items_service.rb +1 -1
- data/lib/gocardless_pro/services/payouts_service.rb +1 -1
- data/lib/gocardless_pro/services/redirect_flows_service.rb +0 -4
- data/lib/gocardless_pro/services/refunds_service.rb +1 -3
- data/lib/gocardless_pro/services/scenario_simulators_service.rb +170 -0
- data/lib/gocardless_pro/services/subscriptions_service.rb +10 -13
- data/lib/gocardless_pro/services/tax_rates_service.rb +1 -1
- data/lib/gocardless_pro/services/webhooks_service.rb +111 -0
- data/lib/gocardless_pro/version.rb +1 -1
- data/lib/gocardless_pro.rb +30 -0
- data/spec/api_service_spec.rb +12 -1
- data/spec/middlewares/raise_gocardless_errors_spec.rb +30 -0
- data/spec/resources/bank_authorisation_spec.rb +259 -0
- data/spec/resources/billing_request_flow_spec.rb +219 -0
- data/spec/resources/billing_request_spec.rb +782 -0
- data/spec/resources/billing_request_template_spec.rb +502 -0
- data/spec/resources/block_spec.rb +560 -0
- data/spec/resources/institution_spec.rb +108 -0
- data/spec/resources/payer_authorisation_spec.rb +418 -0
- data/spec/resources/redirect_flow_spec.rb +9 -0
- data/spec/resources/scenario_simulator_spec.rb +63 -0
- data/spec/resources/webhook_spec.rb +323 -0
- data/spec/services/bank_authorisations_service_spec.rb +353 -0
- data/spec/services/billing_request_flows_service_spec.rb +253 -0
- data/spec/services/billing_request_templates_service_spec.rb +789 -0
- data/spec/services/billing_requests_service_spec.rb +1082 -0
- data/spec/services/blocks_service_spec.rb +823 -0
- data/spec/services/creditor_bank_accounts_service_spec.rb +0 -13
- data/spec/services/creditors_service_spec.rb +0 -13
- data/spec/services/customer_bank_accounts_service_spec.rb +0 -13
- data/spec/services/customers_service_spec.rb +0 -13
- data/spec/services/instalment_schedules_service_spec.rb +0 -26
- data/spec/services/institutions_service_spec.rb +232 -0
- data/spec/services/mandate_imports_service_spec.rb +0 -13
- data/spec/services/mandates_service_spec.rb +0 -13
- data/spec/services/payer_authorisations_service_spec.rb +559 -0
- data/spec/services/payments_service_spec.rb +0 -13
- data/spec/services/redirect_flows_service_spec.rb +9 -13
- data/spec/services/refunds_service_spec.rb +0 -13
- data/spec/services/scenario_simulators_service_spec.rb +74 -0
- data/spec/services/subscriptions_service_spec.rb +0 -13
- data/spec/services/webhooks_service_spec.rb +545 -0
- metadata +64 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae7ce2e7f276bbb9d36b64093e6be341e1f76325a7ced35710e8276360c2df22
|
4
|
+
data.tar.gz: 554e6c6c947c94c76d250fafabdc3867b65ca218269ce70395fe5a0079fdb5e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb5865c593f89c21fe7b1d9ea930c2683286753f9635dcb0e70350ac4fd5af02345a6c472c8b9940484242f6f39cfd05fcdbca0c5a96c3e7cad66f2bf5cf42e6
|
7
|
+
data.tar.gz: 55605f88d457f5a0e8bb3445b9a796dbe1332a94eb3c1ab86318c4bce49d4ab88fcaf6a27ed67c01e4195f6b73eb40ede88d86f3f5998b09b348eb5e5a7a26d0
|
data/.circleci/config.yml
CHANGED
@@ -13,7 +13,19 @@ jobs:
|
|
13
13
|
steps:
|
14
14
|
- checkout
|
15
15
|
- run: bundle install && bundle exec rspec
|
16
|
-
|
16
|
+
publish: &publish
|
17
|
+
docker:
|
18
|
+
- image: ruby:2.6
|
19
|
+
steps:
|
20
|
+
- checkout
|
21
|
+
- run: |
|
22
|
+
mkdir -p $HOME/.gem
|
23
|
+
touch $HOME/.gem/credentials
|
24
|
+
chmod 0600 $HOME/.gem/credentials
|
25
|
+
printf -- "---\n:rubygems_api_key: $RUBYGEM_PUBLISH_API_KEY\n" > $HOME/.gem/credentials
|
26
|
+
gem build *.gemspec
|
27
|
+
gem push *.gem
|
28
|
+
|
17
29
|
workflows:
|
18
30
|
version: 2
|
19
31
|
tests:
|
@@ -22,11 +34,18 @@ workflows:
|
|
22
34
|
matrix:
|
23
35
|
parameters:
|
24
36
|
faraday-version: ["0.9.2", "1.0"]
|
25
|
-
ruby-version: ["2.
|
37
|
+
ruby-version: ["2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "3.0"]
|
26
38
|
exclude:
|
27
|
-
- faraday-version: "1.0"
|
28
|
-
ruby-version: "2.0"
|
29
39
|
- faraday-version: "1.0"
|
30
40
|
ruby-version: "2.1"
|
31
41
|
- faraday-version: "1.0"
|
32
42
|
ruby-version: "2.2"
|
43
|
+
- faraday-version: "0.9.2"
|
44
|
+
ruby-version: "3.0"
|
45
|
+
- publish:
|
46
|
+
filters:
|
47
|
+
branches:
|
48
|
+
only:
|
49
|
+
- master
|
50
|
+
requires:
|
51
|
+
- test
|
@@ -34,6 +34,10 @@ module GoCardlessPro
|
|
34
34
|
@headers = options[:default_headers] || {}
|
35
35
|
@headers['Authorization'] = "Bearer #{token}"
|
36
36
|
@on_idempotency_conflict = options[:on_idempotency_conflict] || :fetch
|
37
|
+
|
38
|
+
unless %i[fetch raise].include?(@on_idempotency_conflict)
|
39
|
+
raise ArgumentError, 'Unknown mode for :on_idempotency_conflict'
|
40
|
+
end
|
37
41
|
end
|
38
42
|
|
39
43
|
# Make a request to the API
|
@@ -3,11 +3,36 @@ module GoCardlessPro
|
|
3
3
|
class Client
|
4
4
|
extend Forwardable
|
5
5
|
|
6
|
+
# Access to the service for bank_authorisation to make API calls
|
7
|
+
def bank_authorisations
|
8
|
+
@bank_authorisations ||= Services::BankAuthorisationsService.new(@api_service)
|
9
|
+
end
|
10
|
+
|
6
11
|
# Access to the service for bank_details_lookup to make API calls
|
7
12
|
def bank_details_lookups
|
8
13
|
@bank_details_lookups ||= Services::BankDetailsLookupsService.new(@api_service)
|
9
14
|
end
|
10
15
|
|
16
|
+
# Access to the service for billing_request to make API calls
|
17
|
+
def billing_requests
|
18
|
+
@billing_requests ||= Services::BillingRequestsService.new(@api_service)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Access to the service for billing_request_flow to make API calls
|
22
|
+
def billing_request_flows
|
23
|
+
@billing_request_flows ||= Services::BillingRequestFlowsService.new(@api_service)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Access to the service for billing_request_template to make API calls
|
27
|
+
def billing_request_templates
|
28
|
+
@billing_request_templates ||= Services::BillingRequestTemplatesService.new(@api_service)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Access to the service for block to make API calls
|
32
|
+
def blocks
|
33
|
+
@blocks ||= Services::BlocksService.new(@api_service)
|
34
|
+
end
|
35
|
+
|
11
36
|
# Access to the service for creditor to make API calls
|
12
37
|
def creditors
|
13
38
|
@creditors ||= Services::CreditorsService.new(@api_service)
|
@@ -48,6 +73,11 @@ module GoCardlessPro
|
|
48
73
|
@instalment_schedules ||= Services::InstalmentSchedulesService.new(@api_service)
|
49
74
|
end
|
50
75
|
|
76
|
+
# Access to the service for institution to make API calls
|
77
|
+
def institutions
|
78
|
+
@institutions ||= Services::InstitutionsService.new(@api_service)
|
79
|
+
end
|
80
|
+
|
51
81
|
# Access to the service for mandate to make API calls
|
52
82
|
def mandates
|
53
83
|
@mandates ||= Services::MandatesService.new(@api_service)
|
@@ -68,6 +98,11 @@ module GoCardlessPro
|
|
68
98
|
@mandate_pdfs ||= Services::MandatePdfsService.new(@api_service)
|
69
99
|
end
|
70
100
|
|
101
|
+
# Access to the service for payer_authorisation to make API calls
|
102
|
+
def payer_authorisations
|
103
|
+
@payer_authorisations ||= Services::PayerAuthorisationsService.new(@api_service)
|
104
|
+
end
|
105
|
+
|
71
106
|
# Access to the service for payment to make API calls
|
72
107
|
def payments
|
73
108
|
@payments ||= Services::PaymentsService.new(@api_service)
|
@@ -93,6 +128,11 @@ module GoCardlessPro
|
|
93
128
|
@refunds ||= Services::RefundsService.new(@api_service)
|
94
129
|
end
|
95
130
|
|
131
|
+
# Access to the service for scenario_simulator to make API calls
|
132
|
+
def scenario_simulators
|
133
|
+
@scenario_simulators ||= Services::ScenarioSimulatorsService.new(@api_service)
|
134
|
+
end
|
135
|
+
|
96
136
|
# Access to the service for subscription to make API calls
|
97
137
|
def subscriptions
|
98
138
|
@subscriptions ||= Services::SubscriptionsService.new(@api_service)
|
@@ -103,6 +143,11 @@ module GoCardlessPro
|
|
103
143
|
@tax_rates ||= Services::TaxRatesService.new(@api_service)
|
104
144
|
end
|
105
145
|
|
146
|
+
# Access to the service for webhook to make API calls
|
147
|
+
def webhooks
|
148
|
+
@webhooks ||= Services::WebhooksService.new(@api_service)
|
149
|
+
end
|
150
|
+
|
106
151
|
# Get a Client configured to use HTTP Basic authentication with the GC Api
|
107
152
|
#
|
108
153
|
# @param options [Hash<Symbol,String>] configuration for creating the client
|
@@ -153,7 +198,7 @@ module GoCardlessPro
|
|
153
198
|
'User-Agent' => user_agent.to_s,
|
154
199
|
'Content-Type' => 'application/json',
|
155
200
|
'GoCardless-Client-Library' => 'gocardless-pro-ruby',
|
156
|
-
'GoCardless-Client-Version' => '2.
|
201
|
+
'GoCardless-Client-Version' => '2.29.0',
|
157
202
|
},
|
158
203
|
}
|
159
204
|
end
|
@@ -12,12 +12,23 @@ module GoCardlessPro
|
|
12
12
|
if CLIENT_ERROR_STATUSES.include?(env.status)
|
13
13
|
json_body ||= JSON.parse(env.body) unless env.body.empty?
|
14
14
|
error_type = json_body['error']['type']
|
15
|
-
|
15
|
+
|
16
|
+
error_class = error_class_for_status(env.status) || error_class_for_type(error_type)
|
17
|
+
|
18
|
+
raise(error_class, json_body['error'])
|
16
19
|
end
|
17
20
|
end
|
18
21
|
|
19
22
|
private
|
20
23
|
|
24
|
+
def error_class_for_status(code)
|
25
|
+
{
|
26
|
+
401 => GoCardlessPro::AuthenticationError,
|
27
|
+
403 => GoCardlessPro::PermissionError,
|
28
|
+
429 => GoCardlessPro::RateLimitError,
|
29
|
+
}.fetch(code, nil)
|
30
|
+
end
|
31
|
+
|
21
32
|
def error_class_for_type(type)
|
22
33
|
{
|
23
34
|
validation_failed: GoCardlessPro::ValidationError,
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
#
|
4
|
+
# This client is automatically generated from a template and JSON schema definition.
|
5
|
+
# See https://github.com/gocardless/gocardless-pro-ruby#contributing before editing.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'uri'
|
9
|
+
|
10
|
+
module GoCardlessPro
|
11
|
+
# A module containing classes for each of the resources in the GC Api
|
12
|
+
module Resources
|
13
|
+
# Represents an instance of a bank_authorisation resource returned from the API
|
14
|
+
|
15
|
+
# Bank Authorisations can be used to authorise Billing Requests.
|
16
|
+
# Authorisations
|
17
|
+
# are created against a specific bank, usually the bank that provides the
|
18
|
+
# payer's
|
19
|
+
# account.
|
20
|
+
#
|
21
|
+
# Creation of Bank Authorisations is only permitted from GoCardless hosted
|
22
|
+
# UIs
|
23
|
+
# (see Billing Request Flows) to ensure we meet regulatory requirements for
|
24
|
+
# checkout flows.
|
25
|
+
class BankAuthorisation
|
26
|
+
attr_reader :authorisation_type
|
27
|
+
attr_reader :authorised_at
|
28
|
+
attr_reader :created_at
|
29
|
+
attr_reader :expires_at
|
30
|
+
attr_reader :id
|
31
|
+
attr_reader :last_visited_at
|
32
|
+
attr_reader :redirect_uri
|
33
|
+
attr_reader :url
|
34
|
+
|
35
|
+
# Initialize a bank_authorisation resource instance
|
36
|
+
# @param object [Hash] an object returned from the API
|
37
|
+
def initialize(object, response = nil)
|
38
|
+
@object = object
|
39
|
+
|
40
|
+
@authorisation_type = object['authorisation_type']
|
41
|
+
@authorised_at = object['authorised_at']
|
42
|
+
@created_at = object['created_at']
|
43
|
+
@expires_at = object['expires_at']
|
44
|
+
@id = object['id']
|
45
|
+
@last_visited_at = object['last_visited_at']
|
46
|
+
@links = object['links']
|
47
|
+
@redirect_uri = object['redirect_uri']
|
48
|
+
@url = object['url']
|
49
|
+
@response = response
|
50
|
+
end
|
51
|
+
|
52
|
+
def api_response
|
53
|
+
ApiResponse.new(@response)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Return the links that the resource has
|
57
|
+
def links
|
58
|
+
@bank_authorisation_links ||= Links.new(@links)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Provides the bank_authorisation resource as a hash of all its readable attributes
|
62
|
+
def to_h
|
63
|
+
@object
|
64
|
+
end
|
65
|
+
|
66
|
+
class Links
|
67
|
+
def initialize(links)
|
68
|
+
@links = links || {}
|
69
|
+
end
|
70
|
+
|
71
|
+
def billing_request
|
72
|
+
@links['billing_request']
|
73
|
+
end
|
74
|
+
|
75
|
+
def institution
|
76
|
+
@links['institution']
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
#
|
4
|
+
# This client is automatically generated from a template and JSON schema definition.
|
5
|
+
# See https://github.com/gocardless/gocardless-pro-ruby#contributing before editing.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'uri'
|
9
|
+
|
10
|
+
module GoCardlessPro
|
11
|
+
# A module containing classes for each of the resources in the GC Api
|
12
|
+
module Resources
|
13
|
+
# Represents an instance of a billing_request resource returned from the API
|
14
|
+
|
15
|
+
# Billing Requests help create resources that require input or action from a
|
16
|
+
# customer. An example of required input might be additional customer
|
17
|
+
# billing
|
18
|
+
# details, while an action would be asking a customer to authorise a payment
|
19
|
+
# using their mobile banking app.
|
20
|
+
#
|
21
|
+
# See [Billing Requests:
|
22
|
+
# Overview](https://developer.gocardless.com/getting-started/billing-requests/overview/)
|
23
|
+
# for how-to's, explanations and tutorials.
|
24
|
+
class BillingRequest
|
25
|
+
attr_reader :actions
|
26
|
+
attr_reader :created_at
|
27
|
+
attr_reader :id
|
28
|
+
attr_reader :mandate_request
|
29
|
+
attr_reader :metadata
|
30
|
+
attr_reader :payment_request
|
31
|
+
attr_reader :resources
|
32
|
+
attr_reader :status
|
33
|
+
|
34
|
+
# Initialize a billing_request resource instance
|
35
|
+
# @param object [Hash] an object returned from the API
|
36
|
+
def initialize(object, response = nil)
|
37
|
+
@object = object
|
38
|
+
|
39
|
+
@actions = object['actions']
|
40
|
+
@created_at = object['created_at']
|
41
|
+
@id = object['id']
|
42
|
+
@links = object['links']
|
43
|
+
@mandate_request = object['mandate_request']
|
44
|
+
@metadata = object['metadata']
|
45
|
+
@payment_request = object['payment_request']
|
46
|
+
@resources = object['resources']
|
47
|
+
@status = object['status']
|
48
|
+
@response = response
|
49
|
+
end
|
50
|
+
|
51
|
+
def api_response
|
52
|
+
ApiResponse.new(@response)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Return the links that the resource has
|
56
|
+
def links
|
57
|
+
@billing_request_links ||= Links.new(@links)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Provides the billing_request resource as a hash of all its readable attributes
|
61
|
+
def to_h
|
62
|
+
@object
|
63
|
+
end
|
64
|
+
|
65
|
+
class Links
|
66
|
+
def initialize(links)
|
67
|
+
@links = links || {}
|
68
|
+
end
|
69
|
+
|
70
|
+
def bank_authorisation
|
71
|
+
@links['bank_authorisation']
|
72
|
+
end
|
73
|
+
|
74
|
+
def creditor
|
75
|
+
@links['creditor']
|
76
|
+
end
|
77
|
+
|
78
|
+
def customer
|
79
|
+
@links['customer']
|
80
|
+
end
|
81
|
+
|
82
|
+
def customer_bank_account
|
83
|
+
@links['customer_bank_account']
|
84
|
+
end
|
85
|
+
|
86
|
+
def customer_billing_detail
|
87
|
+
@links['customer_billing_detail']
|
88
|
+
end
|
89
|
+
|
90
|
+
def mandate_request
|
91
|
+
@links['mandate_request']
|
92
|
+
end
|
93
|
+
|
94
|
+
def mandate_request_mandate
|
95
|
+
@links['mandate_request_mandate']
|
96
|
+
end
|
97
|
+
|
98
|
+
def payment_request
|
99
|
+
@links['payment_request']
|
100
|
+
end
|
101
|
+
|
102
|
+
def payment_request_payment
|
103
|
+
@links['payment_request_payment']
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
#
|
4
|
+
# This client is automatically generated from a template and JSON schema definition.
|
5
|
+
# See https://github.com/gocardless/gocardless-pro-ruby#contributing before editing.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'uri'
|
9
|
+
|
10
|
+
module GoCardlessPro
|
11
|
+
# A module containing classes for each of the resources in the GC Api
|
12
|
+
module Resources
|
13
|
+
# Represents an instance of a billing_request_flow resource returned from the API
|
14
|
+
|
15
|
+
# Billing Request Flows can be created to enable a payer to authorise a
|
16
|
+
# payment created for a scheme with strong payer
|
17
|
+
# authorisation (such as open banking single payments).
|
18
|
+
class BillingRequestFlow
|
19
|
+
attr_reader :authorisation_url
|
20
|
+
attr_reader :auto_fulfil
|
21
|
+
attr_reader :created_at
|
22
|
+
attr_reader :expires_at
|
23
|
+
attr_reader :id
|
24
|
+
attr_reader :lock_bank_account
|
25
|
+
attr_reader :lock_customer_details
|
26
|
+
attr_reader :redirect_uri
|
27
|
+
attr_reader :session_token
|
28
|
+
|
29
|
+
# Initialize a billing_request_flow resource instance
|
30
|
+
# @param object [Hash] an object returned from the API
|
31
|
+
def initialize(object, response = nil)
|
32
|
+
@object = object
|
33
|
+
|
34
|
+
@authorisation_url = object['authorisation_url']
|
35
|
+
@auto_fulfil = object['auto_fulfil']
|
36
|
+
@created_at = object['created_at']
|
37
|
+
@expires_at = object['expires_at']
|
38
|
+
@id = object['id']
|
39
|
+
@links = object['links']
|
40
|
+
@lock_bank_account = object['lock_bank_account']
|
41
|
+
@lock_customer_details = object['lock_customer_details']
|
42
|
+
@redirect_uri = object['redirect_uri']
|
43
|
+
@session_token = object['session_token']
|
44
|
+
@response = response
|
45
|
+
end
|
46
|
+
|
47
|
+
def api_response
|
48
|
+
ApiResponse.new(@response)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Return the links that the resource has
|
52
|
+
def links
|
53
|
+
@billing_request_flow_links ||= Links.new(@links)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Provides the billing_request_flow resource as a hash of all its readable attributes
|
57
|
+
def to_h
|
58
|
+
@object
|
59
|
+
end
|
60
|
+
|
61
|
+
class Links
|
62
|
+
def initialize(links)
|
63
|
+
@links = links || {}
|
64
|
+
end
|
65
|
+
|
66
|
+
def billing_request
|
67
|
+
@links['billing_request']
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
#
|
4
|
+
# This client is automatically generated from a template and JSON schema definition.
|
5
|
+
# See https://github.com/gocardless/gocardless-pro-ruby#contributing before editing.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'uri'
|
9
|
+
|
10
|
+
module GoCardlessPro
|
11
|
+
# A module containing classes for each of the resources in the GC Api
|
12
|
+
module Resources
|
13
|
+
# Represents an instance of a billing_request_template resource returned from the API
|
14
|
+
|
15
|
+
# Billing Request Templates
|
16
|
+
class BillingRequestTemplate
|
17
|
+
attr_reader :authorisation_url
|
18
|
+
attr_reader :created_at
|
19
|
+
attr_reader :id
|
20
|
+
attr_reader :mandate_request_currency
|
21
|
+
attr_reader :mandate_request_metadata
|
22
|
+
attr_reader :mandate_request_scheme
|
23
|
+
attr_reader :mandate_request_verify
|
24
|
+
attr_reader :metadata
|
25
|
+
attr_reader :name
|
26
|
+
attr_reader :payment_request_amount
|
27
|
+
attr_reader :payment_request_currency
|
28
|
+
attr_reader :payment_request_description
|
29
|
+
attr_reader :payment_request_metadata
|
30
|
+
attr_reader :payment_request_scheme
|
31
|
+
attr_reader :redirect_uri
|
32
|
+
attr_reader :updated_at
|
33
|
+
|
34
|
+
# Initialize a billing_request_template resource instance
|
35
|
+
# @param object [Hash] an object returned from the API
|
36
|
+
def initialize(object, response = nil)
|
37
|
+
@object = object
|
38
|
+
|
39
|
+
@authorisation_url = object['authorisation_url']
|
40
|
+
@created_at = object['created_at']
|
41
|
+
@id = object['id']
|
42
|
+
@mandate_request_currency = object['mandate_request_currency']
|
43
|
+
@mandate_request_metadata = object['mandate_request_metadata']
|
44
|
+
@mandate_request_scheme = object['mandate_request_scheme']
|
45
|
+
@mandate_request_verify = object['mandate_request_verify']
|
46
|
+
@metadata = object['metadata']
|
47
|
+
@name = object['name']
|
48
|
+
@payment_request_amount = object['payment_request_amount']
|
49
|
+
@payment_request_currency = object['payment_request_currency']
|
50
|
+
@payment_request_description = object['payment_request_description']
|
51
|
+
@payment_request_metadata = object['payment_request_metadata']
|
52
|
+
@payment_request_scheme = object['payment_request_scheme']
|
53
|
+
@redirect_uri = object['redirect_uri']
|
54
|
+
@updated_at = object['updated_at']
|
55
|
+
@response = response
|
56
|
+
end
|
57
|
+
|
58
|
+
def api_response
|
59
|
+
ApiResponse.new(@response)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Provides the billing_request_template resource as a hash of all its readable attributes
|
63
|
+
def to_h
|
64
|
+
@object
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
#
|
4
|
+
# This client is automatically generated from a template and JSON schema definition.
|
5
|
+
# See https://github.com/gocardless/gocardless-pro-ruby#contributing before editing.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'uri'
|
9
|
+
|
10
|
+
module GoCardlessPro
|
11
|
+
# A module containing classes for each of the resources in the GC Api
|
12
|
+
module Resources
|
13
|
+
# Represents an instance of a block resource returned from the API
|
14
|
+
|
15
|
+
# A block object is a simple rule, when matched, pushes a newly created
|
16
|
+
# mandate to a blocked state. These details can be an exact match, like a
|
17
|
+
# bank account
|
18
|
+
# or an email, or a more generic match such as an email domain. New block
|
19
|
+
# types may be added
|
20
|
+
# over time. Payments and subscriptions can't be created against mandates in
|
21
|
+
# blocked state.
|
22
|
+
#
|
23
|
+
# <p class="notice">
|
24
|
+
# Client libraries have not yet been updated for this API but will be
|
25
|
+
# released soon.
|
26
|
+
# This API is currently only available for approved integrators - please
|
27
|
+
# <a href="mailto:help@gocardless.com">get in touch</a> if you would like to
|
28
|
+
# use this API.
|
29
|
+
# </p>
|
30
|
+
class Block
|
31
|
+
attr_reader :active
|
32
|
+
attr_reader :block_type
|
33
|
+
attr_reader :created_at
|
34
|
+
attr_reader :id
|
35
|
+
attr_reader :reason_description
|
36
|
+
attr_reader :reason_type
|
37
|
+
attr_reader :resource_reference
|
38
|
+
attr_reader :updated_at
|
39
|
+
|
40
|
+
# Initialize a block resource instance
|
41
|
+
# @param object [Hash] an object returned from the API
|
42
|
+
def initialize(object, response = nil)
|
43
|
+
@object = object
|
44
|
+
|
45
|
+
@active = object['active']
|
46
|
+
@block_type = object['block_type']
|
47
|
+
@created_at = object['created_at']
|
48
|
+
@id = object['id']
|
49
|
+
@reason_description = object['reason_description']
|
50
|
+
@reason_type = object['reason_type']
|
51
|
+
@resource_reference = object['resource_reference']
|
52
|
+
@updated_at = object['updated_at']
|
53
|
+
@response = response
|
54
|
+
end
|
55
|
+
|
56
|
+
def api_response
|
57
|
+
ApiResponse.new(@response)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Provides the block resource as a hash of all its readable attributes
|
61
|
+
def to_h
|
62
|
+
@object
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -17,9 +17,8 @@ module GoCardlessPro
|
|
17
17
|
# organisation will have a single "creditor", but the API also supports
|
18
18
|
# collecting payments on behalf of others.
|
19
19
|
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# to your organisation.
|
20
|
+
# Currently, for Anti Money Laundering reasons, any creditors you add must
|
21
|
+
# be directly related to your organisation.
|
23
22
|
class Creditor
|
24
23
|
attr_reader :address_line1
|
25
24
|
attr_reader :address_line2
|
@@ -60,6 +60,18 @@ module GoCardlessPro
|
|
60
60
|
@links = links || {}
|
61
61
|
end
|
62
62
|
|
63
|
+
def bank_authorisation
|
64
|
+
@links['bank_authorisation']
|
65
|
+
end
|
66
|
+
|
67
|
+
def billing_request
|
68
|
+
@links['billing_request']
|
69
|
+
end
|
70
|
+
|
71
|
+
def billing_request_flow
|
72
|
+
@links['billing_request_flow']
|
73
|
+
end
|
74
|
+
|
63
75
|
def creditor
|
64
76
|
@links['creditor']
|
65
77
|
end
|
@@ -80,6 +92,10 @@ module GoCardlessPro
|
|
80
92
|
@links['mandate']
|
81
93
|
end
|
82
94
|
|
95
|
+
def mandate_request_mandate
|
96
|
+
@links['mandate_request_mandate']
|
97
|
+
end
|
98
|
+
|
83
99
|
def new_customer_bank_account
|
84
100
|
@links['new_customer_bank_account']
|
85
101
|
end
|
@@ -104,6 +120,10 @@ module GoCardlessPro
|
|
104
120
|
@links['payment']
|
105
121
|
end
|
106
122
|
|
123
|
+
def payment_request_payment
|
124
|
+
@links['payment_request_payment']
|
125
|
+
end
|
126
|
+
|
107
127
|
def payout
|
108
128
|
@links['payout']
|
109
129
|
end
|