gocardless_pro 2.25.0 → 2.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +3 -3
  3. data/lib/gocardless_pro.rb +18 -0
  4. data/lib/gocardless_pro/client.rb +31 -1
  5. data/lib/gocardless_pro/resources/bank_authorisation.rb +87 -0
  6. data/lib/gocardless_pro/resources/billing_request.rb +86 -0
  7. data/lib/gocardless_pro/resources/billing_request_flow.rb +62 -0
  8. data/lib/gocardless_pro/resources/creditor.rb +2 -3
  9. data/lib/gocardless_pro/resources/institution.rb +45 -0
  10. data/lib/gocardless_pro/resources/payer_authorisation.rb +3 -0
  11. data/lib/gocardless_pro/resources/scenario_simulator.rb +42 -0
  12. data/lib/gocardless_pro/resources/webhook.rb +62 -0
  13. data/lib/gocardless_pro/services/bank_authorisations_service.rb +82 -0
  14. data/lib/gocardless_pro/services/billing_request_flows_service.rb +47 -0
  15. data/lib/gocardless_pro/services/billing_requests_service.rb +325 -0
  16. data/lib/gocardless_pro/services/institutions_service.rb +56 -0
  17. data/lib/gocardless_pro/services/payer_authorisations_service.rb +5 -5
  18. data/lib/gocardless_pro/services/scenario_simulators_service.rb +148 -0
  19. data/lib/gocardless_pro/services/subscriptions_service.rb +8 -3
  20. data/lib/gocardless_pro/services/webhooks_service.rb +113 -0
  21. data/lib/gocardless_pro/version.rb +1 -1
  22. data/spec/resources/bank_authorisation_spec.rb +259 -0
  23. data/spec/resources/billing_request_flow_spec.rb +129 -0
  24. data/spec/resources/billing_request_spec.rb +736 -0
  25. data/spec/resources/institution_spec.rb +103 -0
  26. data/spec/resources/scenario_simulator_spec.rb +63 -0
  27. data/spec/resources/webhook_spec.rb +323 -0
  28. data/spec/services/bank_authorisations_service_spec.rb +366 -0
  29. data/spec/services/billing_request_flows_service_spec.rb +152 -0
  30. data/spec/services/billing_requests_service_spec.rb +1042 -0
  31. data/spec/services/institutions_service_spec.rb +223 -0
  32. data/spec/services/scenario_simulators_service_spec.rb +74 -0
  33. data/spec/services/webhooks_service_spec.rb +545 -0
  34. metadata +39 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e1d21b1955fd8db168185745bd1afbd46fd7c3fa434006abf5c0e838cd7507e
4
- data.tar.gz: ef057338fc37aa2e791ef3dcd7536a50ff55711e7d8fa5762a51d6797395cab6
3
+ metadata.gz: 36f326b7d949867117fd93ecbe9074fcdb54ee3b690f046c2e48e16ce92281dc
4
+ data.tar.gz: dba0ba60c85f16a5d3c87f311ea6b4b73d93a438441a2ff96c962669c56f7630
5
5
  SHA512:
6
- metadata.gz: 7c1daafd49f92798ff81c407809ecf888429f2c723801c42b49dfe4d7d7351ae818925c46d897784f798c7d4ee2c7089959594cec38ab0fc6df3472f481d0207
7
- data.tar.gz: 78eb4cd3154aa14fe50e445cd94605fe39f91893564650948717e84356fb7d374357ecbfad08784be2c21221fc096530e85407c8a1a3eb794b2ab5d40d0024d1
6
+ metadata.gz: 5e5939895e083285066011907aad6a992fbb1f65b86392482964a4c856f64bf2834d9a63bb20faf2e7d3c00d5fa27e32ec0c2a9c4770f805ef2db2ba2983c79f
7
+ data.tar.gz: da519896309a48029ff7d5fb47f2747234b119fb7b539a8701892fe19ea2c921d3606cd66dc9ed4ce70f891a408a979176de5806881a44ce6a82b600aa8cb91b
data/.circleci/config.yml CHANGED
@@ -22,11 +22,11 @@ workflows:
22
22
  matrix:
23
23
  parameters:
24
24
  faraday-version: ["0.9.2", "1.0"]
25
- ruby-version: ["2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7"]
25
+ ruby-version: ["2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "3.0"]
26
26
  exclude:
27
- - faraday-version: "1.0"
28
- ruby-version: "2.0"
29
27
  - faraday-version: "1.0"
30
28
  ruby-version: "2.1"
31
29
  - faraday-version: "1.0"
32
30
  ruby-version: "2.2"
31
+ - faraday-version: "0.9.2"
32
+ ruby-version: "3.0"
@@ -38,9 +38,18 @@ require_relative 'gocardless_pro/response'
38
38
  require_relative 'gocardless_pro/api_response'
39
39
  require_relative 'gocardless_pro/webhook'
40
40
 
41
+ require_relative 'gocardless_pro/resources/bank_authorisation'
42
+ require_relative 'gocardless_pro/services/bank_authorisations_service'
43
+
41
44
  require_relative 'gocardless_pro/resources/bank_details_lookup'
42
45
  require_relative 'gocardless_pro/services/bank_details_lookups_service'
43
46
 
47
+ require_relative 'gocardless_pro/resources/billing_request'
48
+ require_relative 'gocardless_pro/services/billing_requests_service'
49
+
50
+ require_relative 'gocardless_pro/resources/billing_request_flow'
51
+ require_relative 'gocardless_pro/services/billing_request_flows_service'
52
+
44
53
  require_relative 'gocardless_pro/resources/creditor'
45
54
  require_relative 'gocardless_pro/services/creditors_service'
46
55
 
@@ -65,6 +74,9 @@ require_relative 'gocardless_pro/services/events_service'
65
74
  require_relative 'gocardless_pro/resources/instalment_schedule'
66
75
  require_relative 'gocardless_pro/services/instalment_schedules_service'
67
76
 
77
+ require_relative 'gocardless_pro/resources/institution'
78
+ require_relative 'gocardless_pro/services/institutions_service'
79
+
68
80
  require_relative 'gocardless_pro/resources/mandate'
69
81
  require_relative 'gocardless_pro/services/mandates_service'
70
82
 
@@ -95,10 +107,16 @@ require_relative 'gocardless_pro/services/redirect_flows_service'
95
107
  require_relative 'gocardless_pro/resources/refund'
96
108
  require_relative 'gocardless_pro/services/refunds_service'
97
109
 
110
+ require_relative 'gocardless_pro/resources/scenario_simulator'
111
+ require_relative 'gocardless_pro/services/scenario_simulators_service'
112
+
98
113
  require_relative 'gocardless_pro/resources/subscription'
99
114
  require_relative 'gocardless_pro/services/subscriptions_service'
100
115
 
101
116
  require_relative 'gocardless_pro/resources/tax_rate'
102
117
  require_relative 'gocardless_pro/services/tax_rates_service'
103
118
 
119
+ require_relative 'gocardless_pro/resources/webhook'
120
+ require_relative 'gocardless_pro/services/webhooks_service'
121
+
104
122
  require_relative 'gocardless_pro/client.rb'
@@ -3,11 +3,26 @@ 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
+
11
26
  # Access to the service for creditor to make API calls
12
27
  def creditors
13
28
  @creditors ||= Services::CreditorsService.new(@api_service)
@@ -48,6 +63,11 @@ module GoCardlessPro
48
63
  @instalment_schedules ||= Services::InstalmentSchedulesService.new(@api_service)
49
64
  end
50
65
 
66
+ # Access to the service for institution to make API calls
67
+ def institutions
68
+ @institutions ||= Services::InstitutionsService.new(@api_service)
69
+ end
70
+
51
71
  # Access to the service for mandate to make API calls
52
72
  def mandates
53
73
  @mandates ||= Services::MandatesService.new(@api_service)
@@ -98,6 +118,11 @@ module GoCardlessPro
98
118
  @refunds ||= Services::RefundsService.new(@api_service)
99
119
  end
100
120
 
121
+ # Access to the service for scenario_simulator to make API calls
122
+ def scenario_simulators
123
+ @scenario_simulators ||= Services::ScenarioSimulatorsService.new(@api_service)
124
+ end
125
+
101
126
  # Access to the service for subscription to make API calls
102
127
  def subscriptions
103
128
  @subscriptions ||= Services::SubscriptionsService.new(@api_service)
@@ -108,6 +133,11 @@ module GoCardlessPro
108
133
  @tax_rates ||= Services::TaxRatesService.new(@api_service)
109
134
  end
110
135
 
136
+ # Access to the service for webhook to make API calls
137
+ def webhooks
138
+ @webhooks ||= Services::WebhooksService.new(@api_service)
139
+ end
140
+
111
141
  # Get a Client configured to use HTTP Basic authentication with the GC Api
112
142
  #
113
143
  # @param options [Hash<Symbol,String>] configuration for creating the client
@@ -158,7 +188,7 @@ module GoCardlessPro
158
188
  'User-Agent' => user_agent.to_s,
159
189
  'Content-Type' => 'application/json',
160
190
  'GoCardless-Client-Library' => 'gocardless-pro-ruby',
161
- 'GoCardless-Client-Version' => '2.25.0',
191
+ 'GoCardless-Client-Version' => '2.27.0',
162
192
  },
163
193
  }
164
194
  end
@@ -0,0 +1,87 @@
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. The exceptions are integrators with the custom payment
25
+ # pages
26
+ # upgrade, who have been audited to check their flows meet requirements.
27
+ class BankAuthorisation
28
+ attr_reader :authorisation_type
29
+ attr_reader :created_at
30
+ attr_reader :expires_at
31
+ attr_reader :id
32
+ attr_reader :last_visited_at
33
+ attr_reader :redirect_uri
34
+ attr_reader :short_url
35
+ attr_reader :url
36
+
37
+ # Initialize a bank_authorisation resource instance
38
+ # @param object [Hash] an object returned from the API
39
+ def initialize(object, response = nil)
40
+ @object = object
41
+
42
+ @authorisation_type = object['authorisation_type']
43
+ @created_at = object['created_at']
44
+ @expires_at = object['expires_at']
45
+ @id = object['id']
46
+ @last_visited_at = object['last_visited_at']
47
+ @links = object['links']
48
+ @redirect_uri = object['redirect_uri']
49
+ @short_url = object['short_url']
50
+ @url = object['url']
51
+ @response = response
52
+ end
53
+
54
+ def api_response
55
+ ApiResponse.new(@response)
56
+ end
57
+
58
+ # Return the links that the resource has
59
+ def links
60
+ @bank_authorisation_links ||= Links.new(@links)
61
+ end
62
+
63
+ # Provides the bank_authorisation resource as a hash of all its readable attributes
64
+ def to_h
65
+ @object
66
+ end
67
+
68
+ class Links
69
+ def initialize(links)
70
+ @links = links || {}
71
+ end
72
+
73
+ def billing_request
74
+ @links['billing_request']
75
+ end
76
+
77
+ def institution
78
+ @links['institution']
79
+ end
80
+
81
+ def payment_request
82
+ @links['payment_request']
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,86 @@
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
16
+ class BillingRequest
17
+ attr_reader :actions
18
+ attr_reader :auto_fulfil
19
+ attr_reader :created_at
20
+ attr_reader :id
21
+ attr_reader :mandate_request
22
+ attr_reader :metadata
23
+ attr_reader :payment_request
24
+ attr_reader :resources
25
+ attr_reader :status
26
+
27
+ # Initialize a billing_request resource instance
28
+ # @param object [Hash] an object returned from the API
29
+ def initialize(object, response = nil)
30
+ @object = object
31
+
32
+ @actions = object['actions']
33
+ @auto_fulfil = object['auto_fulfil']
34
+ @created_at = object['created_at']
35
+ @id = object['id']
36
+ @links = object['links']
37
+ @mandate_request = object['mandate_request']
38
+ @metadata = object['metadata']
39
+ @payment_request = object['payment_request']
40
+ @resources = object['resources']
41
+ @status = object['status']
42
+ @response = response
43
+ end
44
+
45
+ def api_response
46
+ ApiResponse.new(@response)
47
+ end
48
+
49
+ # Return the links that the resource has
50
+ def links
51
+ @billing_request_links ||= Links.new(@links)
52
+ end
53
+
54
+ # Provides the billing_request resource as a hash of all its readable attributes
55
+ def to_h
56
+ @object
57
+ end
58
+
59
+ class Links
60
+ def initialize(links)
61
+ @links = links || {}
62
+ end
63
+
64
+ def customer
65
+ @links['customer']
66
+ end
67
+
68
+ def customer_bank_account
69
+ @links['customer_bank_account']
70
+ end
71
+
72
+ def customer_billing_detail
73
+ @links['customer_billing_detail']
74
+ end
75
+
76
+ def mandate_bank_authorisation
77
+ @links['mandate_bank_authorisation']
78
+ end
79
+
80
+ def payment_bank_authorisation
81
+ @links['payment_bank_authorisation']
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,62 @@
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 :created_at
21
+ attr_reader :expires_at
22
+ attr_reader :redirect_uri
23
+
24
+ # Initialize a billing_request_flow resource instance
25
+ # @param object [Hash] an object returned from the API
26
+ def initialize(object, response = nil)
27
+ @object = object
28
+
29
+ @authorisation_url = object['authorisation_url']
30
+ @created_at = object['created_at']
31
+ @expires_at = object['expires_at']
32
+ @links = object['links']
33
+ @redirect_uri = object['redirect_uri']
34
+ @response = response
35
+ end
36
+
37
+ def api_response
38
+ ApiResponse.new(@response)
39
+ end
40
+
41
+ # Return the links that the resource has
42
+ def links
43
+ @billing_request_flow_links ||= Links.new(@links)
44
+ end
45
+
46
+ # Provides the billing_request_flow resource as a hash of all its readable attributes
47
+ def to_h
48
+ @object
49
+ end
50
+
51
+ class Links
52
+ def initialize(links)
53
+ @links = links || {}
54
+ end
55
+
56
+ def billing_request
57
+ @links['billing_request']
58
+ end
59
+ end
60
+ end
61
+ end
62
+ 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
- # Please get in touch if you wish to use this endpoint. Currently, for Anti
21
- # Money Laundering reasons, any creditors you add must be directly related
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
@@ -0,0 +1,45 @@
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 institution resource returned from the API
14
+
15
+ # Institutions that are supported when creating [Bank
16
+ # Authorisations](#billing-requests-bank-authorisations).
17
+ class Institution
18
+ attr_reader :icon_url
19
+ attr_reader :id
20
+ attr_reader :logo_url
21
+ attr_reader :name
22
+
23
+ # Initialize a institution resource instance
24
+ # @param object [Hash] an object returned from the API
25
+ def initialize(object, response = nil)
26
+ @object = object
27
+
28
+ @icon_url = object['icon_url']
29
+ @id = object['id']
30
+ @logo_url = object['logo_url']
31
+ @name = object['name']
32
+ @response = response
33
+ end
34
+
35
+ def api_response
36
+ ApiResponse.new(@response)
37
+ end
38
+
39
+ # Provides the institution resource as a hash of all its readable attributes
40
+ def to_h
41
+ @object
42
+ end
43
+ end
44
+ end
45
+ end
@@ -53,6 +53,9 @@ module GoCardlessPro
53
53
  # is still saved if incomplete data is provided.
54
54
  # We return the list of incomplete data in the `incomplete_fields` along
55
55
  # with the resources in the body of the response.
56
+ # The bank account details(account_number, bank_code & branch_code) must
57
+ # be sent together rather than splitting across different request for both
58
+ # `create` and `update` endpoints.
56
59
  # <br><br>
57
60
  # The API is designed to be flexible and allows you to collect information
58
61
  # in multiple steps without storing any sensitive data in the browser or in