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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -29
  3. data/lib/gocardless_pro.rb +7 -3
  4. data/lib/gocardless_pro/api_response.rb +14 -0
  5. data/lib/gocardless_pro/client.rb +24 -12
  6. data/lib/gocardless_pro/list_response.rb +7 -3
  7. data/lib/gocardless_pro/request.rb +3 -11
  8. data/lib/gocardless_pro/resources/{helper.rb → bank_details_lookup.rb} +15 -4
  9. data/lib/gocardless_pro/resources/creditor.rb +14 -13
  10. data/lib/gocardless_pro/resources/creditor_bank_account.rb +14 -10
  11. data/lib/gocardless_pro/resources/customer.rb +8 -4
  12. data/lib/gocardless_pro/resources/customer_bank_account.rb +15 -13
  13. data/lib/gocardless_pro/resources/event.rb +6 -1
  14. data/lib/gocardless_pro/resources/mandate.rb +10 -7
  15. data/lib/gocardless_pro/resources/mandate_pdf.rb +42 -0
  16. data/lib/gocardless_pro/resources/payment.rb +12 -11
  17. data/lib/gocardless_pro/resources/payout.rb +9 -6
  18. data/lib/gocardless_pro/resources/redirect_flow.rb +24 -30
  19. data/lib/gocardless_pro/resources/refund.rb +15 -15
  20. data/lib/gocardless_pro/resources/subscription.rb +26 -22
  21. data/lib/gocardless_pro/response.rb +5 -0
  22. data/lib/gocardless_pro/services/bank_details_lookups_service.rb +55 -0
  23. data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +8 -9
  24. data/lib/gocardless_pro/services/creditors_service.rb +6 -7
  25. data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +15 -18
  26. data/lib/gocardless_pro/services/customers_service.rb +6 -7
  27. data/lib/gocardless_pro/services/events_service.rb +4 -6
  28. data/lib/gocardless_pro/services/mandate_pdfs_service.rb +63 -0
  29. data/lib/gocardless_pro/services/mandates_service.rb +12 -24
  30. data/lib/gocardless_pro/services/payments_service.rb +15 -16
  31. data/lib/gocardless_pro/services/payouts_service.rb +5 -6
  32. data/lib/gocardless_pro/services/redirect_flows_service.rb +13 -17
  33. data/lib/gocardless_pro/services/refunds_service.rb +16 -19
  34. data/lib/gocardless_pro/services/subscriptions_service.rb +10 -11
  35. data/lib/gocardless_pro/version.rb +1 -1
  36. data/spec/api_response_spec.rb +28 -0
  37. data/spec/resources/bank_details_lookup_spec.rb +39 -0
  38. data/spec/resources/creditor_spec.rb +0 -4
  39. data/spec/resources/{helper_spec.rb → mandate_pdf_spec.rb} +17 -1
  40. data/spec/resources/subscription_spec.rb +4 -4
  41. data/spec/services/bank_details_lookups_service_spec.rb +80 -0
  42. data/spec/services/creditor_bank_accounts_service_spec.rb +2 -0
  43. data/spec/services/creditors_service_spec.rb +2 -0
  44. data/spec/services/customer_bank_accounts_service_spec.rb +2 -0
  45. data/spec/services/customers_service_spec.rb +2 -0
  46. data/spec/services/events_service_spec.rb +2 -0
  47. data/spec/services/mandate_pdfs_service_spec.rb +80 -0
  48. data/spec/services/mandates_service_spec.rb +2 -0
  49. data/spec/services/payments_service_spec.rb +2 -0
  50. data/spec/services/payouts_service_spec.rb +2 -0
  51. data/spec/services/refunds_service_spec.rb +2 -0
  52. data/spec/services/subscriptions_service_spec.rb +26 -24
  53. metadata +17 -8
  54. data/lib/gocardless_pro/services/helpers_service.rb +0 -99
  55. data/spec/services/helpers_service_spec.rb +0 -122
@@ -22,12 +22,11 @@ module GoCardlessPro
22
22
  response = make_request(:post, path, options)
23
23
 
24
24
  return if response.body.nil?
25
- Resources::CreditorBankAccount.new(unenvelope_body(response.body))
25
+ Resources::CreditorBankAccount.new(unenvelope_body(response.body), response)
26
26
  end
27
27
 
28
- # Returns a
29
- # [cursor-paginated](https://developer.gocardless.com/pro/2015-04-29/#overview-cursor-pagination)
30
- # list of your creditor bank accounts.
28
+ # Returns a [cursor-paginated](#overview-cursor-pagination) list of your
29
+ # creditor bank accounts.
31
30
  # Example URL: /creditor_bank_accounts
32
31
  # @param options [Hash] parameters as a hash, under a params key.
33
32
  def list(options = {})
@@ -35,7 +34,7 @@ module GoCardlessPro
35
34
 
36
35
  response = make_request(:get, path, options)
37
36
  ListResponse.new(
38
- raw_response: response,
37
+ response: response,
39
38
  unenveloped_body: unenvelope_body(response.body),
40
39
  resource_class: Resources::CreditorBankAccount
41
40
  )
@@ -57,7 +56,7 @@ module GoCardlessPro
57
56
  # Retrieves the details of an existing creditor bank account.
58
57
  # Example URL: /creditor_bank_accounts/:identity
59
58
  #
60
- # @param identity # Unique identifier, beginning with "BA"
59
+ # @param identity # Unique identifier, beginning with "BA".
61
60
  # @param options [Hash] parameters as a hash, under a params key.
62
61
  def get(identity, options = {})
63
62
  path = sub_url('/creditor_bank_accounts/:identity', 'identity' => identity)
@@ -65,7 +64,7 @@ module GoCardlessPro
65
64
  response = make_request(:get, path, options)
66
65
 
67
66
  return if response.body.nil?
68
- Resources::CreditorBankAccount.new(unenvelope_body(response.body))
67
+ Resources::CreditorBankAccount.new(unenvelope_body(response.body), response)
69
68
  end
70
69
 
71
70
  # Immediately disables the bank account, no money can be paid out to a disabled
@@ -78,7 +77,7 @@ module GoCardlessPro
78
77
  # creating a new bank account resource with the same details.
79
78
  # Example URL: /creditor_bank_accounts/:identity/actions/disable
80
79
  #
81
- # @param identity # Unique identifier, beginning with "BA"
80
+ # @param identity # Unique identifier, beginning with "BA".
82
81
  # @param options [Hash] parameters as a hash, under a params key.
83
82
  def disable(identity, options = {})
84
83
  path = sub_url('/creditor_bank_accounts/:identity/actions/disable', 'identity' => identity)
@@ -89,7 +88,7 @@ module GoCardlessPro
89
88
  response = make_request(:post, path, options)
90
89
 
91
90
  return if response.body.nil?
92
- Resources::CreditorBankAccount.new(unenvelope_body(response.body))
91
+ Resources::CreditorBankAccount.new(unenvelope_body(response.body), response)
93
92
  end
94
93
 
95
94
  # Unenvelope the response of the body using the service's `envelope_key`
@@ -22,12 +22,11 @@ module GoCardlessPro
22
22
  response = make_request(:post, path, options)
23
23
 
24
24
  return if response.body.nil?
25
- Resources::Creditor.new(unenvelope_body(response.body))
25
+ Resources::Creditor.new(unenvelope_body(response.body), response)
26
26
  end
27
27
 
28
- # Returns a
29
- # [cursor-paginated](https://developer.gocardless.com/pro/2015-04-29/#overview-cursor-pagination)
30
- # list of your creditors.
28
+ # Returns a [cursor-paginated](#overview-cursor-pagination) list of your
29
+ # creditors.
31
30
  # Example URL: /creditors
32
31
  # @param options [Hash] parameters as a hash, under a params key.
33
32
  def list(options = {})
@@ -35,7 +34,7 @@ module GoCardlessPro
35
34
 
36
35
  response = make_request(:get, path, options)
37
36
  ListResponse.new(
38
- raw_response: response,
37
+ response: response,
39
38
  unenveloped_body: unenvelope_body(response.body),
40
39
  resource_class: Resources::Creditor
41
40
  )
@@ -65,7 +64,7 @@ module GoCardlessPro
65
64
  response = make_request(:get, path, options)
66
65
 
67
66
  return if response.body.nil?
68
- Resources::Creditor.new(unenvelope_body(response.body))
67
+ Resources::Creditor.new(unenvelope_body(response.body), response)
69
68
  end
70
69
 
71
70
  # Updates a creditor object. Supports all of the fields supported when creating
@@ -83,7 +82,7 @@ module GoCardlessPro
83
82
  response = make_request(:put, path, options)
84
83
 
85
84
  return if response.body.nil?
86
- Resources::Creditor.new(unenvelope_body(response.body))
85
+ Resources::Creditor.new(unenvelope_body(response.body), response)
87
86
  end
88
87
 
89
88
  # Unenvelope the response of the body using the service's `envelope_key`
@@ -16,18 +16,16 @@ module GoCardlessPro
16
16
  # ways to supply bank account details:
17
17
  #
18
18
  # - [Local
19
- # details](https://developer.gocardless.com/pro/2015-04-29/#ui-local-bank-details)
20
- #
19
+ # details](#ui-local-bank-details)
21
20
  #
22
21
  # - IBAN
23
22
  #
24
23
  # - [Customer Bank Account
25
- # Tokens](https://developer.gocardless.com/pro/2015-04-29/#js-flow-create-a-customer-bank-account-token)
26
- #
24
+ # Tokens](#js-flow-create-a-customer-bank-account-token)
27
25
  #
28
- # For more information on the different fields required in each country, see
29
- # [local bank
30
- # details](https://developer.gocardless.com/pro/2015-04-29/#ui-local-bank-details).
26
+ # For more
27
+ # information on the different fields required in each country, see [local bank
28
+ # details](#ui-local-bank-details).
31
29
  # Example URL: /customer_bank_accounts
32
30
  # @param options [Hash] parameters as a hash, under a params key.
33
31
  def create(options = {})
@@ -39,12 +37,11 @@ module GoCardlessPro
39
37
  response = make_request(:post, path, options)
40
38
 
41
39
  return if response.body.nil?
42
- Resources::CustomerBankAccount.new(unenvelope_body(response.body))
40
+ Resources::CustomerBankAccount.new(unenvelope_body(response.body), response)
43
41
  end
44
42
 
45
- # Returns a
46
- # [cursor-paginated](https://developer.gocardless.com/pro/2015-04-29/#overview-cursor-pagination)
47
- # list of your bank accounts.
43
+ # Returns a [cursor-paginated](#overview-cursor-pagination) list of your bank
44
+ # accounts.
48
45
  # Example URL: /customer_bank_accounts
49
46
  # @param options [Hash] parameters as a hash, under a params key.
50
47
  def list(options = {})
@@ -52,7 +49,7 @@ module GoCardlessPro
52
49
 
53
50
  response = make_request(:get, path, options)
54
51
  ListResponse.new(
55
- raw_response: response,
52
+ response: response,
56
53
  unenveloped_body: unenvelope_body(response.body),
57
54
  resource_class: Resources::CustomerBankAccount
58
55
  )
@@ -74,7 +71,7 @@ module GoCardlessPro
74
71
  # Retrieves the details of an existing bank account.
75
72
  # Example URL: /customer_bank_accounts/:identity
76
73
  #
77
- # @param identity # Unique identifier, beginning with "BA"
74
+ # @param identity # Unique identifier, beginning with "BA".
78
75
  # @param options [Hash] parameters as a hash, under a params key.
79
76
  def get(identity, options = {})
80
77
  path = sub_url('/customer_bank_accounts/:identity', 'identity' => identity)
@@ -82,14 +79,14 @@ module GoCardlessPro
82
79
  response = make_request(:get, path, options)
83
80
 
84
81
  return if response.body.nil?
85
- Resources::CustomerBankAccount.new(unenvelope_body(response.body))
82
+ Resources::CustomerBankAccount.new(unenvelope_body(response.body), response)
86
83
  end
87
84
 
88
85
  # Updates a customer bank account object. Only the metadata parameter is
89
86
  # allowed.
90
87
  # Example URL: /customer_bank_accounts/:identity
91
88
  #
92
- # @param identity # Unique identifier, beginning with "BA"
89
+ # @param identity # Unique identifier, beginning with "BA".
93
90
  # @param options [Hash] parameters as a hash, under a params key.
94
91
  def update(identity, options = {})
95
92
  path = sub_url('/customer_bank_accounts/:identity', 'identity' => identity)
@@ -100,7 +97,7 @@ module GoCardlessPro
100
97
  response = make_request(:put, path, options)
101
98
 
102
99
  return if response.body.nil?
103
- Resources::CustomerBankAccount.new(unenvelope_body(response.body))
100
+ Resources::CustomerBankAccount.new(unenvelope_body(response.body), response)
104
101
  end
105
102
 
106
103
  # Immediately cancels all associated mandates and cancellable payments.
@@ -113,7 +110,7 @@ module GoCardlessPro
113
110
  # bank account resource with the same details.
114
111
  # Example URL: /customer_bank_accounts/:identity/actions/disable
115
112
  #
116
- # @param identity # Unique identifier, beginning with "BA"
113
+ # @param identity # Unique identifier, beginning with "BA".
117
114
  # @param options [Hash] parameters as a hash, under a params key.
118
115
  def disable(identity, options = {})
119
116
  path = sub_url('/customer_bank_accounts/:identity/actions/disable', 'identity' => identity)
@@ -124,7 +121,7 @@ module GoCardlessPro
124
121
  response = make_request(:post, path, options)
125
122
 
126
123
  return if response.body.nil?
127
- Resources::CustomerBankAccount.new(unenvelope_body(response.body))
124
+ Resources::CustomerBankAccount.new(unenvelope_body(response.body), response)
128
125
  end
129
126
 
130
127
  # Unenvelope the response of the body using the service's `envelope_key`
@@ -22,12 +22,11 @@ module GoCardlessPro
22
22
  response = make_request(:post, path, options)
23
23
 
24
24
  return if response.body.nil?
25
- Resources::Customer.new(unenvelope_body(response.body))
25
+ Resources::Customer.new(unenvelope_body(response.body), response)
26
26
  end
27
27
 
28
- # Returns a
29
- # [cursor-paginated](https://developer.gocardless.com/pro/2015-04-29/#overview-cursor-pagination)
30
- # list of your customers.
28
+ # Returns a [cursor-paginated](#overview-cursor-pagination) list of your
29
+ # customers.
31
30
  # Example URL: /customers
32
31
  # @param options [Hash] parameters as a hash, under a params key.
33
32
  def list(options = {})
@@ -35,7 +34,7 @@ module GoCardlessPro
35
34
 
36
35
  response = make_request(:get, path, options)
37
36
  ListResponse.new(
38
- raw_response: response,
37
+ response: response,
39
38
  unenveloped_body: unenvelope_body(response.body),
40
39
  resource_class: Resources::Customer
41
40
  )
@@ -65,7 +64,7 @@ module GoCardlessPro
65
64
  response = make_request(:get, path, options)
66
65
 
67
66
  return if response.body.nil?
68
- Resources::Customer.new(unenvelope_body(response.body))
67
+ Resources::Customer.new(unenvelope_body(response.body), response)
69
68
  end
70
69
 
71
70
  # Updates a customer object. Supports all of the fields supported when creating
@@ -83,7 +82,7 @@ module GoCardlessPro
83
82
  response = make_request(:put, path, options)
84
83
 
85
84
  return if response.body.nil?
86
- Resources::Customer.new(unenvelope_body(response.body))
85
+ Resources::Customer.new(unenvelope_body(response.body), response)
87
86
  end
88
87
 
89
88
  # Unenvelope the response of the body using the service's `envelope_key`
@@ -10,9 +10,7 @@ module GoCardlessPro
10
10
  module Services
11
11
  # Service for making requests to the Event endpoints
12
12
  class EventsService < BaseService
13
- # Returns a
14
- # [cursor-paginated](https://developer.gocardless.com/pro/2015-04-29/#overview-cursor-pagination)
15
- # list of your events.
13
+ # Returns a [cursor-paginated](#overview-cursor-pagination) list of your events.
16
14
  # Example URL: /events
17
15
  # @param options [Hash] parameters as a hash, under a params key.
18
16
  def list(options = {})
@@ -20,7 +18,7 @@ module GoCardlessPro
20
18
 
21
19
  response = make_request(:get, path, options)
22
20
  ListResponse.new(
23
- raw_response: response,
21
+ response: response,
24
22
  unenveloped_body: unenvelope_body(response.body),
25
23
  resource_class: Resources::Event
26
24
  )
@@ -42,7 +40,7 @@ module GoCardlessPro
42
40
  # Retrieves the details of a single event.
43
41
  # Example URL: /events/:identity
44
42
  #
45
- # @param identity # Unique identifier, beginning with "EV"
43
+ # @param identity # Unique identifier, beginning with "EV".
46
44
  # @param options [Hash] parameters as a hash, under a params key.
47
45
  def get(identity, options = {})
48
46
  path = sub_url('/events/:identity', 'identity' => identity)
@@ -50,7 +48,7 @@ module GoCardlessPro
50
48
  response = make_request(:get, path, options)
51
49
 
52
50
  return if response.body.nil?
53
- Resources::Event.new(unenvelope_body(response.body))
51
+ Resources::Event.new(unenvelope_body(response.body), response)
54
52
  end
55
53
 
56
54
  # Unenvelope the response of the body using the service's `envelope_key`
@@ -0,0 +1,63 @@
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 MandatePdf endpoints
12
+ class MandatePdfsService < BaseService
13
+ # Generates a PDF mandate and returns its temporary URL.
14
+ #
15
+ # Customer and bank
16
+ # account details can be left blank (for a blank mandate), provided manually, or
17
+ # inferred from the ID of an existing [mandate](#core-endpoints-mandates).
18
+ #
19
+ #
20
+ # To generate a PDF mandate in a foreign language, set your `Accept-Language`
21
+ # header to the relevant [ISO
22
+ # 639-1](http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes#Partial_ISO_639_table)
23
+ # language code. Supported languages are Dutch, English, French, German,
24
+ # Italian, Portuguese and Spanish.
25
+ # Example URL: /mandate_pdfs
26
+ # @param options [Hash] parameters as a hash, under a params key.
27
+ def create(options = {})
28
+ path = '/mandate_pdfs'
29
+
30
+ params = options.delete(:params) || {}
31
+ options[:params] = {}
32
+ options[:params][envelope_key] = params
33
+ response = make_request(:post, path, options)
34
+
35
+ return if response.body.nil?
36
+ Resources::MandatePdf.new(unenvelope_body(response.body), response)
37
+ end
38
+
39
+ # Unenvelope the response of the body using the service's `envelope_key`
40
+ #
41
+ # @param body [Hash]
42
+ def unenvelope_body(body)
43
+ body[envelope_key] || body['data']
44
+ end
45
+
46
+ private
47
+
48
+ # return the key which API responses will envelope data under
49
+ def envelope_key
50
+ 'mandate_pdfs'
51
+ end
52
+
53
+ # take a URL with placeholder params and substitute them out for the acutal value
54
+ # @param url [String] the URL with placeholders in
55
+ # @param param_map [Hash] a hash of placeholders and their actual values
56
+ def sub_url(url, param_map)
57
+ param_map.reduce(url) do |new_url, (param, value)|
58
+ new_url.gsub(":#{param}", value)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -22,13 +22,11 @@ module GoCardlessPro
22
22
  response = make_request(:post, path, options)
23
23
 
24
24
  return if response.body.nil?
25
- Resources::Mandate.new(unenvelope_body(response.body))
25
+ Resources::Mandate.new(unenvelope_body(response.body), response)
26
26
  end
27
27
 
28
- # Returns a
29
- # [cursor-paginated](https://developer.gocardless.com/pro/2015-04-29/#overview-cursor-pagination)
30
- # list of your mandates. Except where stated, these filters can only be used one
31
- # at a time.
28
+ # Returns a [cursor-paginated](#overview-cursor-pagination) list of your
29
+ # mandates. Except where stated, these filters can only be used one at a time.
32
30
  # Example URL: /mandates
33
31
  # @param options [Hash] parameters as a hash, under a params key.
34
32
  def list(options = {})
@@ -36,7 +34,7 @@ module GoCardlessPro
36
34
 
37
35
  response = make_request(:get, path, options)
38
36
  ListResponse.new(
39
- raw_response: response,
37
+ response: response,
40
38
  unenveloped_body: unenvelope_body(response.body),
41
39
  resource_class: Resources::Mandate
42
40
  )
@@ -56,19 +54,9 @@ module GoCardlessPro
56
54
  end
57
55
 
58
56
  # Retrieves the details of an existing mandate.
59
- #
60
- # If you specify `Accept:
61
- # application/pdf` on a request to this endpoint it will return a PDF complying
62
- # to the relevant scheme rules, which you can present to your customer.
63
- #
64
- # PDF
65
- # mandates can be retrieved in Dutch, English, French, German, Italian,
66
- # Portuguese and Spanish by specifying the [ISO
67
- # 639-1](http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes#Partial_ISO_639_table)
68
- # language code as an `Accept-Language` header.
69
57
  # Example URL: /mandates/:identity
70
58
  #
71
- # @param identity # Unique identifier, beginning with "MD"
59
+ # @param identity # Unique identifier, beginning with "MD".
72
60
  # @param options [Hash] parameters as a hash, under a params key.
73
61
  def get(identity, options = {})
74
62
  path = sub_url('/mandates/:identity', 'identity' => identity)
@@ -76,13 +64,13 @@ module GoCardlessPro
76
64
  response = make_request(:get, path, options)
77
65
 
78
66
  return if response.body.nil?
79
- Resources::Mandate.new(unenvelope_body(response.body))
67
+ Resources::Mandate.new(unenvelope_body(response.body), response)
80
68
  end
81
69
 
82
70
  # Updates a mandate object. This accepts only the metadata parameter.
83
71
  # Example URL: /mandates/:identity
84
72
  #
85
- # @param identity # Unique identifier, beginning with "MD"
73
+ # @param identity # Unique identifier, beginning with "MD".
86
74
  # @param options [Hash] parameters as a hash, under a params key.
87
75
  def update(identity, options = {})
88
76
  path = sub_url('/mandates/:identity', 'identity' => identity)
@@ -93,7 +81,7 @@ module GoCardlessPro
93
81
  response = make_request(:put, path, options)
94
82
 
95
83
  return if response.body.nil?
96
- Resources::Mandate.new(unenvelope_body(response.body))
84
+ Resources::Mandate.new(unenvelope_body(response.body), response)
97
85
  end
98
86
 
99
87
  # Immediately cancels a mandate and all associated cancellable payments. Any
@@ -104,7 +92,7 @@ module GoCardlessPro
104
92
  # mandate is already cancelled.
105
93
  # Example URL: /mandates/:identity/actions/cancel
106
94
  #
107
- # @param identity # Unique identifier, beginning with "MD"
95
+ # @param identity # Unique identifier, beginning with "MD".
108
96
  # @param options [Hash] parameters as a hash, under a params key.
109
97
  def cancel(identity, options = {})
110
98
  path = sub_url('/mandates/:identity/actions/cancel', 'identity' => identity)
@@ -115,7 +103,7 @@ module GoCardlessPro
115
103
  response = make_request(:post, path, options)
116
104
 
117
105
  return if response.body.nil?
118
- Resources::Mandate.new(unenvelope_body(response.body))
106
+ Resources::Mandate.new(unenvelope_body(response.body), response)
119
107
  end
120
108
 
121
109
  # <a name="mandate_not_inactive"></a>Reinstates a cancelled or expired mandate
@@ -132,7 +120,7 @@ module GoCardlessPro
132
120
  # Mandates can be resubmitted up to 3 times.
133
121
  # Example URL: /mandates/:identity/actions/reinstate
134
122
  #
135
- # @param identity # Unique identifier, beginning with "MD"
123
+ # @param identity # Unique identifier, beginning with "MD".
136
124
  # @param options [Hash] parameters as a hash, under a params key.
137
125
  def reinstate(identity, options = {})
138
126
  path = sub_url('/mandates/:identity/actions/reinstate', 'identity' => identity)
@@ -143,7 +131,7 @@ module GoCardlessPro
143
131
  response = make_request(:post, path, options)
144
132
 
145
133
  return if response.body.nil?
146
- Resources::Mandate.new(unenvelope_body(response.body))
134
+ Resources::Mandate.new(unenvelope_body(response.body), response)
147
135
  end
148
136
 
149
137
  # Unenvelope the response of the body using the service's `envelope_key`