gocardless_pro 0.3.0 → 1.0.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 +14 -29
- data/lib/gocardless_pro.rb +7 -3
- data/lib/gocardless_pro/api_response.rb +14 -0
- data/lib/gocardless_pro/client.rb +24 -12
- data/lib/gocardless_pro/list_response.rb +7 -3
- data/lib/gocardless_pro/request.rb +3 -11
- data/lib/gocardless_pro/resources/{helper.rb → bank_details_lookup.rb} +15 -4
- data/lib/gocardless_pro/resources/creditor.rb +14 -13
- data/lib/gocardless_pro/resources/creditor_bank_account.rb +14 -10
- data/lib/gocardless_pro/resources/customer.rb +8 -4
- data/lib/gocardless_pro/resources/customer_bank_account.rb +15 -13
- data/lib/gocardless_pro/resources/event.rb +6 -1
- data/lib/gocardless_pro/resources/mandate.rb +10 -7
- data/lib/gocardless_pro/resources/mandate_pdf.rb +42 -0
- data/lib/gocardless_pro/resources/payment.rb +12 -11
- data/lib/gocardless_pro/resources/payout.rb +9 -6
- data/lib/gocardless_pro/resources/redirect_flow.rb +24 -30
- data/lib/gocardless_pro/resources/refund.rb +15 -15
- data/lib/gocardless_pro/resources/subscription.rb +26 -22
- data/lib/gocardless_pro/response.rb +5 -0
- data/lib/gocardless_pro/services/bank_details_lookups_service.rb +55 -0
- data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +8 -9
- data/lib/gocardless_pro/services/creditors_service.rb +6 -7
- data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +15 -18
- data/lib/gocardless_pro/services/customers_service.rb +6 -7
- data/lib/gocardless_pro/services/events_service.rb +4 -6
- data/lib/gocardless_pro/services/mandate_pdfs_service.rb +63 -0
- data/lib/gocardless_pro/services/mandates_service.rb +12 -24
- data/lib/gocardless_pro/services/payments_service.rb +15 -16
- data/lib/gocardless_pro/services/payouts_service.rb +5 -6
- data/lib/gocardless_pro/services/redirect_flows_service.rb +13 -17
- data/lib/gocardless_pro/services/refunds_service.rb +16 -19
- data/lib/gocardless_pro/services/subscriptions_service.rb +10 -11
- data/lib/gocardless_pro/version.rb +1 -1
- data/spec/api_response_spec.rb +28 -0
- data/spec/resources/bank_details_lookup_spec.rb +39 -0
- data/spec/resources/creditor_spec.rb +0 -4
- data/spec/resources/{helper_spec.rb → mandate_pdf_spec.rb} +17 -1
- data/spec/resources/subscription_spec.rb +4 -4
- data/spec/services/bank_details_lookups_service_spec.rb +80 -0
- data/spec/services/creditor_bank_accounts_service_spec.rb +2 -0
- data/spec/services/creditors_service_spec.rb +2 -0
- data/spec/services/customer_bank_accounts_service_spec.rb +2 -0
- data/spec/services/customers_service_spec.rb +2 -0
- data/spec/services/events_service_spec.rb +2 -0
- data/spec/services/mandate_pdfs_service_spec.rb +80 -0
- data/spec/services/mandates_service_spec.rb +2 -0
- data/spec/services/payments_service_spec.rb +2 -0
- data/spec/services/payouts_service_spec.rb +2 -0
- data/spec/services/refunds_service_spec.rb +2 -0
- data/spec/services/subscriptions_service_spec.rb +26 -24
- metadata +17 -8
- data/lib/gocardless_pro/services/helpers_service.rb +0 -99
- data/spec/services/helpers_service_spec.rb +0 -122
@@ -29,7 +29,7 @@ module GoCardlessPro
|
|
29
29
|
attr_reader :resource_type
|
30
30
|
# initialize a resource instance
|
31
31
|
# @param object [Hash] an object returned from the API
|
32
|
-
def initialize(object)
|
32
|
+
def initialize(object, response = nil)
|
33
33
|
@object = object
|
34
34
|
|
35
35
|
@action = object['action']
|
@@ -39,6 +39,11 @@ module GoCardlessPro
|
|
39
39
|
@links = object['links']
|
40
40
|
@metadata = object['metadata']
|
41
41
|
@resource_type = object['resource_type']
|
42
|
+
@response = response
|
43
|
+
end
|
44
|
+
|
45
|
+
def api_response
|
46
|
+
ApiResponse.new(@response)
|
42
47
|
end
|
43
48
|
|
44
49
|
# return the links that the resource has
|
@@ -12,12 +12,10 @@ module GoCardlessPro
|
|
12
12
|
# A module containing classes for each of the resources in the GC Api
|
13
13
|
module Resources
|
14
14
|
# Mandates represent the Direct Debit mandate with a
|
15
|
-
# [customer](
|
16
|
-
|
17
|
-
#
|
18
|
-
#
|
19
|
-
# [webhook](https://developer.gocardless.com/pro/2015-04-29/#webhooks)
|
20
|
-
# whenever the status of a mandate changes.
|
15
|
+
# [customer](#core-endpoints-customers).
|
16
|
+
#
|
17
|
+
# GoCardless will notify you
|
18
|
+
# via a [webhook](#webhooks) whenever the status of a mandate changes.
|
21
19
|
# Represents an instance of a mandate resource returned from the API
|
22
20
|
class Mandate
|
23
21
|
attr_reader :created_at
|
@@ -35,7 +33,7 @@ module GoCardlessPro
|
|
35
33
|
attr_reader :status
|
36
34
|
# initialize a resource instance
|
37
35
|
# @param object [Hash] an object returned from the API
|
38
|
-
def initialize(object)
|
36
|
+
def initialize(object, response = nil)
|
39
37
|
@object = object
|
40
38
|
|
41
39
|
@created_at = object['created_at']
|
@@ -46,6 +44,11 @@ module GoCardlessPro
|
|
46
44
|
@reference = object['reference']
|
47
45
|
@scheme = object['scheme']
|
48
46
|
@status = object['status']
|
47
|
+
@response = response
|
48
|
+
end
|
49
|
+
|
50
|
+
def api_response
|
51
|
+
ApiResponse.new(@response)
|
49
52
|
end
|
50
53
|
|
51
54
|
# return the links that the resource has
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
# encoding: utf-8
|
4
|
+
#
|
5
|
+
# WARNING: Do not edit by hand, this file was generated by Crank:
|
6
|
+
#
|
7
|
+
# https://github.com/gocardless/crank
|
8
|
+
#
|
9
|
+
require 'uri'
|
10
|
+
|
11
|
+
module GoCardlessPro
|
12
|
+
# A module containing classes for each of the resources in the GC Api
|
13
|
+
module Resources
|
14
|
+
# Mandate PDFs allow you to easily display [scheme-rules
|
15
|
+
# compliant](#ui-compliance-requirements) Direct Debit mandates to your
|
16
|
+
# customers.
|
17
|
+
# Represents an instance of a mandate_pdf resource returned from the API
|
18
|
+
class MandatePdf
|
19
|
+
attr_reader :expires_at
|
20
|
+
|
21
|
+
attr_reader :url
|
22
|
+
# initialize a resource instance
|
23
|
+
# @param object [Hash] an object returned from the API
|
24
|
+
def initialize(object, response = nil)
|
25
|
+
@object = object
|
26
|
+
|
27
|
+
@expires_at = object['expires_at']
|
28
|
+
@url = object['url']
|
29
|
+
@response = response
|
30
|
+
end
|
31
|
+
|
32
|
+
def api_response
|
33
|
+
ApiResponse.new(@response)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Provides the resource as a hash of all it's readable attributes
|
37
|
+
def to_h
|
38
|
+
@object
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -12,16 +12,12 @@ module GoCardlessPro
|
|
12
12
|
# A module containing classes for each of the resources in the GC Api
|
13
13
|
module Resources
|
14
14
|
# Payment objects represent payments from a
|
15
|
-
# [customer](
|
16
|
-
#
|
17
|
-
# [
|
18
|
-
#
|
19
|
-
#
|
20
|
-
|
21
|
-
# #
|
22
|
-
# GoCardless will notify you via a
|
23
|
-
# [webhook](https://developer.gocardless.com/pro/2015-04-29/#webhooks)
|
24
|
-
# whenever the state of a payment changes.
|
15
|
+
# [customer](#core-endpoints-customers) to a
|
16
|
+
# [creditor](#core-endpoints-creditors), taken against a Direct Debit
|
17
|
+
# [mandate](#core-endpoints-mandates).
|
18
|
+
#
|
19
|
+
# GoCardless will notify you via
|
20
|
+
# a [webhook](#webhooks) whenever the state of a payment changes.
|
25
21
|
# Represents an instance of a payment resource returned from the API
|
26
22
|
class Payment
|
27
23
|
attr_reader :amount
|
@@ -45,7 +41,7 @@ module GoCardlessPro
|
|
45
41
|
attr_reader :status
|
46
42
|
# initialize a resource instance
|
47
43
|
# @param object [Hash] an object returned from the API
|
48
|
-
def initialize(object)
|
44
|
+
def initialize(object, response = nil)
|
49
45
|
@object = object
|
50
46
|
|
51
47
|
@amount = object['amount']
|
@@ -59,6 +55,11 @@ module GoCardlessPro
|
|
59
55
|
@metadata = object['metadata']
|
60
56
|
@reference = object['reference']
|
61
57
|
@status = object['status']
|
58
|
+
@response = response
|
59
|
+
end
|
60
|
+
|
61
|
+
def api_response
|
62
|
+
ApiResponse.new(@response)
|
62
63
|
end
|
63
64
|
|
64
65
|
# return the links that the resource has
|
@@ -12,11 +12,9 @@ module GoCardlessPro
|
|
12
12
|
# A module containing classes for each of the resources in the GC Api
|
13
13
|
module Resources
|
14
14
|
# Payouts represent transfers from GoCardless to a
|
15
|
-
# [creditor](
|
16
|
-
#
|
17
|
-
#
|
18
|
-
# Payouts are created automatically after a payment has been successfully
|
19
|
-
# collected.
|
15
|
+
# [creditor](#core-endpoints-creditors). Each payout contains the funds
|
16
|
+
# collected from one or many [payments](#core-endpoints-payments). Payouts are
|
17
|
+
# created automatically after a payment has been successfully collected.
|
20
18
|
# Represents an instance of a payout resource returned from the API
|
21
19
|
class Payout
|
22
20
|
attr_reader :amount
|
@@ -32,7 +30,7 @@ module GoCardlessPro
|
|
32
30
|
attr_reader :status
|
33
31
|
# initialize a resource instance
|
34
32
|
# @param object [Hash] an object returned from the API
|
35
|
-
def initialize(object)
|
33
|
+
def initialize(object, response = nil)
|
36
34
|
@object = object
|
37
35
|
|
38
36
|
@amount = object['amount']
|
@@ -42,6 +40,11 @@ module GoCardlessPro
|
|
42
40
|
@links = object['links']
|
43
41
|
@reference = object['reference']
|
44
42
|
@status = object['status']
|
43
|
+
@response = response
|
44
|
+
end
|
45
|
+
|
46
|
+
def api_response
|
47
|
+
ApiResponse.new(@response)
|
45
48
|
end
|
46
49
|
|
47
50
|
# return the links that the resource has
|
@@ -11,14 +11,15 @@ require 'uri'
|
|
11
11
|
module GoCardlessPro
|
12
12
|
# A module containing classes for each of the resources in the GC Api
|
13
13
|
module Resources
|
14
|
-
# Redirect flows enable you to use GoCardless Pro's
|
15
|
-
# set up mandates
|
14
|
+
# Redirect flows enable you to use GoCardless Pro's [hosted payment
|
15
|
+
# pages](https://pay-sandbox.gocardless.com/AL000000AKFPFF) to set up mandates
|
16
|
+
# with your customers. These pages are fully compliant and have been
|
17
|
+
# translated into Dutch, French, German, Italian, Portuguese and Spanish.
|
16
18
|
#
|
17
|
-
# The overall flow is:
|
18
19
|
#
|
20
|
+
# The overall flow is:
|
19
21
|
#
|
20
|
-
# 1. You
|
21
|
-
# [create](https://developer.gocardless.com/pro/2015-04-29/#create-a-redirect-flow)
|
22
|
+
# 1. You [create](#create-a-redirect-flow)
|
22
23
|
# a redirect flow for your customer, and redirect them to the returned
|
23
24
|
# redirect url, e.g. `https://pay.gocardless.com/flow/RE123`.
|
24
25
|
#
|
@@ -28,32 +29,20 @@ module GoCardlessPro
|
|
28
29
|
# back to your `success_redirect_url` with `redirect_flow_id=RE123` in the
|
29
30
|
# querystring.
|
30
31
|
#
|
31
|
-
# 3. You
|
32
|
-
# [
|
33
|
-
#
|
34
|
-
# [
|
35
|
-
# [
|
36
|
-
#
|
37
|
-
# and
|
38
|
-
# [mandate](https://developer.gocardless.com/pro/2015-04-29/#api-endpoints-mandates),
|
39
|
-
# and returns the ID of the mandate. You may wish to create a
|
40
|
-
# [subscription](https://developer.gocardless.com/pro/2015-04-29/#api-endpoints-subscriptions)
|
41
|
-
# or
|
42
|
-
# [payment](https://developer.gocardless.com/pro/2015-04-29/#api-endpoints-payments)
|
43
|
-
# at this point.
|
44
|
-
#
|
45
|
-
# It is recommended that you link the redirect flow to
|
46
|
-
# your user object as soon as it is created, and attach the created resources
|
47
|
-
# to that user in the complete step.
|
32
|
+
# 3. You [complete](#complete-a-redirect-flow) the
|
33
|
+
# redirect flow, which creates a [customer](#core-endpoints-customers),
|
34
|
+
# [customer bank account](#core-endpoints-customer-bank-accounts), and
|
35
|
+
# [mandate](#core-endpoints-mandates), and returns the ID of the mandate. You
|
36
|
+
# may wish to create a [subscription](#core-endpoints-subscriptions) or
|
37
|
+
# [payment](#core-endpoints-payments) at this point.
|
48
38
|
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
39
|
+
# It is
|
40
|
+
# recommended that you link the redirect flow to your user object as soon as
|
41
|
+
# it is created, and attach the created resources to that user in the complete
|
42
|
+
# step.
|
53
43
|
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
# redirect flows.
|
44
|
+
# Redirect flows expire 30 minutes after they are first
|
45
|
+
# created. You cannot complete an expired redirect flow.
|
57
46
|
# Represents an instance of a redirect_flow resource returned from the API
|
58
47
|
class RedirectFlow
|
59
48
|
attr_reader :created_at
|
@@ -71,7 +60,7 @@ module GoCardlessPro
|
|
71
60
|
attr_reader :success_redirect_url
|
72
61
|
# initialize a resource instance
|
73
62
|
# @param object [Hash] an object returned from the API
|
74
|
-
def initialize(object)
|
63
|
+
def initialize(object, response = nil)
|
75
64
|
@object = object
|
76
65
|
|
77
66
|
@created_at = object['created_at']
|
@@ -82,6 +71,11 @@ module GoCardlessPro
|
|
82
71
|
@scheme = object['scheme']
|
83
72
|
@session_token = object['session_token']
|
84
73
|
@success_redirect_url = object['success_redirect_url']
|
74
|
+
@response = response
|
75
|
+
end
|
76
|
+
|
77
|
+
def api_response
|
78
|
+
ApiResponse.new(@response)
|
85
79
|
end
|
86
80
|
|
87
81
|
# return the links that the resource has
|
@@ -12,21 +12,16 @@ module GoCardlessPro
|
|
12
12
|
# A module containing classes for each of the resources in the GC Api
|
13
13
|
module Resources
|
14
14
|
# Refund objects represent (partial) refunds of a
|
15
|
-
# [payment](
|
16
|
-
#
|
17
|
-
#
|
18
|
-
|
19
|
-
#
|
20
|
-
#
|
21
|
-
|
22
|
-
# #
|
23
|
-
# GoCardless will notify you via a
|
24
|
-
# [webhook](https://developer.gocardless.com/pro/2015-04-29/#webhooks)
|
25
|
-
# whenever a refund is created, and will update the `amount_refunded` property
|
26
|
-
# of the payment.
|
15
|
+
# [payment](#core-endpoints-payment) back to the
|
16
|
+
# [customer](#core-endpoints-customers).
|
17
|
+
#
|
18
|
+
# GoCardless will notify you
|
19
|
+
# via a [webhook](#webhooks) whenever a refund is created, and will update the
|
20
|
+
# `amount_refunded` property of the payment.
|
27
21
|
#
|
28
|
-
# _Note:_ A payment that
|
29
|
-
# refunded can still receive a late failure or chargeback
|
22
|
+
# _Note:_ A payment that
|
23
|
+
# has been (partially) refunded can still receive a late failure or chargeback
|
24
|
+
# from the banks.
|
30
25
|
# Represents an instance of a refund resource returned from the API
|
31
26
|
class Refund
|
32
27
|
attr_reader :amount
|
@@ -40,7 +35,7 @@ module GoCardlessPro
|
|
40
35
|
attr_reader :metadata
|
41
36
|
# initialize a resource instance
|
42
37
|
# @param object [Hash] an object returned from the API
|
43
|
-
def initialize(object)
|
38
|
+
def initialize(object, response = nil)
|
44
39
|
@object = object
|
45
40
|
|
46
41
|
@amount = object['amount']
|
@@ -49,6 +44,11 @@ module GoCardlessPro
|
|
49
44
|
@id = object['id']
|
50
45
|
@links = object['links']
|
51
46
|
@metadata = object['metadata']
|
47
|
+
@response = response
|
48
|
+
end
|
49
|
+
|
50
|
+
def api_response
|
51
|
+
ApiResponse.new(@response)
|
52
52
|
end
|
53
53
|
|
54
54
|
# return the links that the resource has
|
@@ -11,27 +11,26 @@ require 'uri'
|
|
11
11
|
module GoCardlessPro
|
12
12
|
# A module containing classes for each of the resources in the GC Api
|
13
13
|
module Resources
|
14
|
-
# Subscriptions create
|
15
|
-
#
|
16
|
-
# according to a schedule.
|
14
|
+
# Subscriptions create [payments](#core-endpoints-payments) according to a
|
15
|
+
# schedule.
|
17
16
|
#
|
18
17
|
# #### Recurrence Rules
|
19
18
|
#
|
20
|
-
# The
|
21
|
-
#
|
22
|
-
# - The first payment
|
23
|
-
#
|
24
|
-
# - When neither `month` nor `day_of_month`
|
25
|
-
#
|
26
|
-
|
27
|
-
# - If `month` or `day_of_month` are present, the
|
28
|
-
#
|
29
|
-
# validations apply:
|
19
|
+
# The following rules apply
|
20
|
+
# when specifying recurrence:
|
21
|
+
# - The first payment must be charged within 1
|
22
|
+
# year.
|
23
|
+
# - When neither `month` nor `day_of_month` are present, the
|
24
|
+
# subscription will recur from the `start_date` based on the `interval_unit`.
|
25
|
+
|
26
|
+
# # - If `month` or `day_of_month` are present, the recurrence rules will be
|
27
|
+
# applied from the `start_date`, and the following validations apply:
|
30
28
|
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
# |
|
34
|
-
#
|
29
|
+
#
|
30
|
+
# | interval_unit | month |
|
31
|
+
# day_of_month |
|
32
|
+
# | :-------------- |
|
33
|
+
# :--------------------------------------------- |
|
35
34
|
# :-------------------------------------- |
|
36
35
|
# | yearly | optional
|
37
36
|
# (required if `day_of_month` provided) | optional (required if `month`
|
@@ -90,7 +89,7 @@ module GoCardlessPro
|
|
90
89
|
|
91
90
|
attr_reader :day_of_month
|
92
91
|
|
93
|
-
attr_reader :
|
92
|
+
attr_reader :end_date
|
94
93
|
|
95
94
|
attr_reader :id
|
96
95
|
|
@@ -106,14 +105,14 @@ module GoCardlessPro
|
|
106
105
|
|
107
106
|
attr_reader :payment_reference
|
108
107
|
|
109
|
-
attr_reader :
|
108
|
+
attr_reader :start_date
|
110
109
|
|
111
110
|
attr_reader :status
|
112
111
|
|
113
112
|
attr_reader :upcoming_payments
|
114
113
|
# initialize a resource instance
|
115
114
|
# @param object [Hash] an object returned from the API
|
116
|
-
def initialize(object)
|
115
|
+
def initialize(object, response = nil)
|
117
116
|
@object = object
|
118
117
|
|
119
118
|
@amount = object['amount']
|
@@ -121,7 +120,7 @@ module GoCardlessPro
|
|
121
120
|
@created_at = object['created_at']
|
122
121
|
@currency = object['currency']
|
123
122
|
@day_of_month = object['day_of_month']
|
124
|
-
@
|
123
|
+
@end_date = object['end_date']
|
125
124
|
@id = object['id']
|
126
125
|
@interval = object['interval']
|
127
126
|
@interval_unit = object['interval_unit']
|
@@ -130,9 +129,14 @@ module GoCardlessPro
|
|
130
129
|
@month = object['month']
|
131
130
|
@name = object['name']
|
132
131
|
@payment_reference = object['payment_reference']
|
133
|
-
@
|
132
|
+
@start_date = object['start_date']
|
134
133
|
@status = object['status']
|
135
134
|
@upcoming_payments = object['upcoming_payments']
|
135
|
+
@response = response
|
136
|
+
end
|
137
|
+
|
138
|
+
def api_response
|
139
|
+
ApiResponse.new(@response)
|
136
140
|
end
|
137
141
|
|
138
142
|
# return the links that the resource has
|
@@ -1,6 +1,11 @@
|
|
1
1
|
module GoCardlessPro
|
2
2
|
# A class to wrap an API response
|
3
3
|
class Response
|
4
|
+
extend Forwardable
|
5
|
+
|
6
|
+
def_delegator :@response, :headers
|
7
|
+
def_delegator :@response, :status, :status_code
|
8
|
+
|
4
9
|
# Initialize a response instance
|
5
10
|
# @param response an API response
|
6
11
|
def initialize(response)
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative './base_service'
|
2
|
+
|
3
|
+
# encoding: utf-8
|
4
|
+
#
|
5
|
+
# WARNING: Do not edit by hand, this file was generated by Crank:
|
6
|
+
#
|
7
|
+
# https://github.com/gocardless/crank
|
8
|
+
|
9
|
+
module GoCardlessPro
|
10
|
+
module Services
|
11
|
+
# Service for making requests to the BankDetailsLookup endpoints
|
12
|
+
class BankDetailsLookupsService < BaseService
|
13
|
+
# Performs a bank details lookup.
|
14
|
+
#
|
15
|
+
# Bank account details may be supplied
|
16
|
+
# using [local details](#appendix-local-bank-details) or an IBAN.
|
17
|
+
# Example URL: /bank_details_lookups
|
18
|
+
# @param options [Hash] parameters as a hash, under a params key.
|
19
|
+
def create(options = {})
|
20
|
+
path = '/bank_details_lookups'
|
21
|
+
|
22
|
+
params = options.delete(:params) || {}
|
23
|
+
options[:params] = {}
|
24
|
+
options[:params][envelope_key] = params
|
25
|
+
response = make_request(:post, path, options)
|
26
|
+
|
27
|
+
return if response.body.nil?
|
28
|
+
Resources::BankDetailsLookup.new(unenvelope_body(response.body), response)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Unenvelope the response of the body using the service's `envelope_key`
|
32
|
+
#
|
33
|
+
# @param body [Hash]
|
34
|
+
def unenvelope_body(body)
|
35
|
+
body[envelope_key] || body['data']
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
# return the key which API responses will envelope data under
|
41
|
+
def envelope_key
|
42
|
+
'bank_details_lookups'
|
43
|
+
end
|
44
|
+
|
45
|
+
# take a URL with placeholder params and substitute them out for the acutal value
|
46
|
+
# @param url [String] the URL with placeholders in
|
47
|
+
# @param param_map [Hash] a hash of placeholders and their actual values
|
48
|
+
def sub_url(url, param_map)
|
49
|
+
param_map.reduce(url) do |new_url, (param, value)|
|
50
|
+
new_url.gsub(":#{param}", value)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|