gocardless-pro 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -4
- data/lib/gocardless-pro.rb +1 -169
- data/lib/gocardless-pro/api_service.rb +2 -2
- data/lib/gocardless-pro/client.rb +135 -0
- data/lib/gocardless-pro/version.rb +1 -1
- data/spec/api_service_spec.rb +3 -2
- data/spec/client_spec.rb +4 -14
- data/spec/services/creditor_bank_account_service_spec.rb +1 -2
- data/spec/services/creditor_service_spec.rb +1 -2
- data/spec/services/customer_bank_account_service_spec.rb +1 -2
- data/spec/services/customer_service_spec.rb +1 -2
- data/spec/services/event_service_spec.rb +1 -2
- data/spec/services/helper_service_spec.rb +1 -2
- data/spec/services/mandate_service_spec.rb +1 -2
- data/spec/services/payment_service_spec.rb +1 -2
- data/spec/services/payout_service_spec.rb +1 -2
- data/spec/services/redirect_flow_service_spec.rb +1 -2
- data/spec/services/refund_service_spec.rb +1 -2
- data/spec/services/subscription_service_spec.rb +1 -2
- metadata +2 -25
- data/lib/gocardless-pro/resources/api_key.rb +0 -62
- data/lib/gocardless-pro/resources/publishable_api_key.rb +0 -51
- data/lib/gocardless-pro/resources/role.rb +0 -101
- data/lib/gocardless-pro/resources/user.rb +0 -60
- data/lib/gocardless-pro/services/api_key_service.rb +0 -130
- data/lib/gocardless-pro/services/publishable_api_key_service.rb +0 -130
- data/lib/gocardless-pro/services/role_service.rb +0 -127
- data/lib/gocardless-pro/services/user_service.rb +0 -148
- data/spec/resources/api_key_spec.rb +0 -85
- data/spec/resources/publishable_api_key_spec.rb +0 -63
- data/spec/resources/role_spec.rb +0 -63
- data/spec/resources/user_spec.rb +0 -85
- data/spec/services/api_key_service_spec.rb +0 -362
- data/spec/services/publishable_api_key_service_spec.rb +0 -336
- data/spec/services/role_service_spec.rb +0 -336
- data/spec/services/user_service_spec.rb +0 -433
@@ -1,130 +0,0 @@
|
|
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 GoCardless
|
10
|
-
module Services
|
11
|
-
# Service for making requests to the ApiKey endpoints
|
12
|
-
class ApiKeyService < BaseService
|
13
|
-
# Creates a new API key.
|
14
|
-
# Example URL: /api_keys
|
15
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
16
|
-
# Else, they will be the body of the request.
|
17
|
-
def create(options = {}, custom_headers = {})
|
18
|
-
path = '/api_keys'
|
19
|
-
new_options = {}
|
20
|
-
new_options[envelope_key] = options
|
21
|
-
options = new_options
|
22
|
-
response = make_request(:post, path, options, custom_headers)
|
23
|
-
|
24
|
-
Resources::ApiKey.new(unenvelope_body(response.body))
|
25
|
-
end
|
26
|
-
|
27
|
-
# Returns a
|
28
|
-
# [cursor-paginated](https://developer.gocardless.com/pro/#overview-cursor-pagination)
|
29
|
-
# list of your API keys.
|
30
|
-
# Example URL: /api_keys
|
31
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
32
|
-
# Else, they will be the body of the request.
|
33
|
-
def list(options = {}, custom_headers = {})
|
34
|
-
path = '/api_keys'
|
35
|
-
|
36
|
-
response = make_request(:get, path, options, custom_headers)
|
37
|
-
ListResponse.new(
|
38
|
-
raw_response: response,
|
39
|
-
unenveloped_body: unenvelope_body(response.body),
|
40
|
-
resource_class: Resources::ApiKey
|
41
|
-
)
|
42
|
-
end
|
43
|
-
|
44
|
-
# Get a lazily enumerated list of all the items returned. This is simmilar to the `list` method but will paginate for you automatically.
|
45
|
-
#
|
46
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
47
|
-
# Otherwise they will be the body of the request.
|
48
|
-
def all(options = {})
|
49
|
-
Paginator.new(
|
50
|
-
service: self,
|
51
|
-
path: '/api_keys',
|
52
|
-
options: options
|
53
|
-
).enumerator
|
54
|
-
end
|
55
|
-
|
56
|
-
# Retrieves the details of an existing API key.
|
57
|
-
# Example URL: /api_keys/:identity
|
58
|
-
#
|
59
|
-
# @param identity # Unique identifier, beginning with "AK"
|
60
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
61
|
-
# Else, they will be the body of the request.
|
62
|
-
def get(identity, options = {}, custom_headers = {})
|
63
|
-
path = sub_url('/api_keys/:identity', 'identity' => identity)
|
64
|
-
|
65
|
-
response = make_request(:get, path, options, custom_headers)
|
66
|
-
|
67
|
-
Resources::ApiKey.new(unenvelope_body(response.body))
|
68
|
-
end
|
69
|
-
|
70
|
-
# Updates an API key. Only the `name` and `webhook_url` fields are supported.
|
71
|
-
# Example URL: /api_keys/:identity
|
72
|
-
#
|
73
|
-
# @param identity # Unique identifier, beginning with "AK"
|
74
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
75
|
-
# Else, they will be the body of the request.
|
76
|
-
def update(identity, options = {}, custom_headers = {})
|
77
|
-
path = sub_url('/api_keys/:identity', 'identity' => identity)
|
78
|
-
|
79
|
-
new_options = {}
|
80
|
-
new_options[envelope_key] = options
|
81
|
-
options = new_options
|
82
|
-
response = make_request(:put, path, options, custom_headers)
|
83
|
-
|
84
|
-
Resources::ApiKey.new(unenvelope_body(response.body))
|
85
|
-
end
|
86
|
-
|
87
|
-
# Disables an API key. Once disabled, the API key will not be usable to
|
88
|
-
# authenticate any requests, and its `webhook_url` will not receive any more
|
89
|
-
# events.
|
90
|
-
# Example URL: /api_keys/:identity/actions/disable
|
91
|
-
#
|
92
|
-
# @param identity # Unique identifier, beginning with "AK"
|
93
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
94
|
-
# Else, they will be the body of the request.
|
95
|
-
def disable(identity, options = {}, custom_headers = {})
|
96
|
-
path = sub_url('/api_keys/:identity/actions/disable', 'identity' => identity)
|
97
|
-
|
98
|
-
new_options = {}
|
99
|
-
new_options['data'] = options
|
100
|
-
options = new_options
|
101
|
-
response = make_request(:post, path, options, custom_headers)
|
102
|
-
|
103
|
-
Resources::ApiKey.new(unenvelope_body(response.body))
|
104
|
-
end
|
105
|
-
|
106
|
-
# Unenvelope the response of the body using the service's `envelope_key`
|
107
|
-
#
|
108
|
-
# @param body [Hash]
|
109
|
-
def unenvelope_body(body)
|
110
|
-
body[envelope_key] || body['data']
|
111
|
-
end
|
112
|
-
|
113
|
-
private
|
114
|
-
|
115
|
-
# return the key which API responses will envelope data under
|
116
|
-
def envelope_key
|
117
|
-
'api_keys'
|
118
|
-
end
|
119
|
-
|
120
|
-
# take a URL with placeholder params and substitute them out for the acutal value
|
121
|
-
# @param url [String] the URL with placeholders in
|
122
|
-
# @param param_map [Hash] a hash of placeholders and their actual values
|
123
|
-
def sub_url(url, param_map)
|
124
|
-
param_map.reduce(url) do |new_url, (param, value)|
|
125
|
-
new_url.gsub(":#{param}", value)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
@@ -1,130 +0,0 @@
|
|
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 GoCardless
|
10
|
-
module Services
|
11
|
-
# Service for making requests to the PublishableApiKey endpoints
|
12
|
-
class PublishableApiKeyService < BaseService
|
13
|
-
# Creates a publishable API key object.
|
14
|
-
# Example URL: /publishable_api_keys
|
15
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
16
|
-
# Else, they will be the body of the request.
|
17
|
-
def create(options = {}, custom_headers = {})
|
18
|
-
path = '/publishable_api_keys'
|
19
|
-
new_options = {}
|
20
|
-
new_options[envelope_key] = options
|
21
|
-
options = new_options
|
22
|
-
response = make_request(:post, path, options, custom_headers)
|
23
|
-
|
24
|
-
Resources::PublishableApiKey.new(unenvelope_body(response.body))
|
25
|
-
end
|
26
|
-
|
27
|
-
# Returns a
|
28
|
-
# [cursor-paginated](https://developer.gocardless.com/pro/#overview-cursor-pagination)
|
29
|
-
# list of your publishable API keys
|
30
|
-
# Example URL: /publishable_api_keys
|
31
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
32
|
-
# Else, they will be the body of the request.
|
33
|
-
def list(options = {}, custom_headers = {})
|
34
|
-
path = '/publishable_api_keys'
|
35
|
-
|
36
|
-
response = make_request(:get, path, options, custom_headers)
|
37
|
-
ListResponse.new(
|
38
|
-
raw_response: response,
|
39
|
-
unenveloped_body: unenvelope_body(response.body),
|
40
|
-
resource_class: Resources::PublishableApiKey
|
41
|
-
)
|
42
|
-
end
|
43
|
-
|
44
|
-
# Get a lazily enumerated list of all the items returned. This is simmilar to the `list` method but will paginate for you automatically.
|
45
|
-
#
|
46
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
47
|
-
# Otherwise they will be the body of the request.
|
48
|
-
def all(options = {})
|
49
|
-
Paginator.new(
|
50
|
-
service: self,
|
51
|
-
path: '/publishable_api_keys',
|
52
|
-
options: options
|
53
|
-
).enumerator
|
54
|
-
end
|
55
|
-
|
56
|
-
# Returns all details about a single publishable API key
|
57
|
-
# Example URL: /publishable_api_keys/:identity
|
58
|
-
#
|
59
|
-
# @param identity # Unique identifier, beginning with "PK"
|
60
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
61
|
-
# Else, they will be the body of the request.
|
62
|
-
def get(identity, options = {}, custom_headers = {})
|
63
|
-
path = sub_url('/publishable_api_keys/:identity', 'identity' => identity)
|
64
|
-
|
65
|
-
response = make_request(:get, path, options, custom_headers)
|
66
|
-
|
67
|
-
Resources::PublishableApiKey.new(unenvelope_body(response.body))
|
68
|
-
end
|
69
|
-
|
70
|
-
# Updates a publishable API key. Only the `name` fields are supported. Any other
|
71
|
-
# fields passed will be ignored.
|
72
|
-
# Example URL: /publishable_api_keys/:identity
|
73
|
-
#
|
74
|
-
# @param identity # Unique identifier, beginning with "PK"
|
75
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
76
|
-
# Else, they will be the body of the request.
|
77
|
-
def update(identity, options = {}, custom_headers = {})
|
78
|
-
path = sub_url('/publishable_api_keys/:identity', 'identity' => identity)
|
79
|
-
|
80
|
-
new_options = {}
|
81
|
-
new_options[envelope_key] = options
|
82
|
-
options = new_options
|
83
|
-
response = make_request(:put, path, options, custom_headers)
|
84
|
-
|
85
|
-
Resources::PublishableApiKey.new(unenvelope_body(response.body))
|
86
|
-
end
|
87
|
-
|
88
|
-
# Disables a publishable API key. Once disabled, the publishable API key will
|
89
|
-
# not be usable to authenticate any requests.
|
90
|
-
# Example URL: /publishable_api_keys/:identity/actions/disable
|
91
|
-
#
|
92
|
-
# @param identity # Unique identifier, beginning with "PK"
|
93
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
94
|
-
# Else, they will be the body of the request.
|
95
|
-
def disable(identity, options = {}, custom_headers = {})
|
96
|
-
path = sub_url('/publishable_api_keys/:identity/actions/disable', 'identity' => identity)
|
97
|
-
|
98
|
-
new_options = {}
|
99
|
-
new_options['data'] = options
|
100
|
-
options = new_options
|
101
|
-
response = make_request(:post, path, options, custom_headers)
|
102
|
-
|
103
|
-
Resources::PublishableApiKey.new(unenvelope_body(response.body))
|
104
|
-
end
|
105
|
-
|
106
|
-
# Unenvelope the response of the body using the service's `envelope_key`
|
107
|
-
#
|
108
|
-
# @param body [Hash]
|
109
|
-
def unenvelope_body(body)
|
110
|
-
body[envelope_key] || body['data']
|
111
|
-
end
|
112
|
-
|
113
|
-
private
|
114
|
-
|
115
|
-
# return the key which API responses will envelope data under
|
116
|
-
def envelope_key
|
117
|
-
'publishable_api_keys'
|
118
|
-
end
|
119
|
-
|
120
|
-
# take a URL with placeholder params and substitute them out for the acutal value
|
121
|
-
# @param url [String] the URL with placeholders in
|
122
|
-
# @param param_map [Hash] a hash of placeholders and their actual values
|
123
|
-
def sub_url(url, param_map)
|
124
|
-
param_map.reduce(url) do |new_url, (param, value)|
|
125
|
-
new_url.gsub(":#{param}", value)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
@@ -1,127 +0,0 @@
|
|
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 GoCardless
|
10
|
-
module Services
|
11
|
-
# Service for making requests to the Role endpoints
|
12
|
-
class RoleService < BaseService
|
13
|
-
# Create a role with set access permissions
|
14
|
-
# Example URL: /roles
|
15
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
16
|
-
# Else, they will be the body of the request.
|
17
|
-
def create(options = {}, custom_headers = {})
|
18
|
-
path = '/roles'
|
19
|
-
new_options = {}
|
20
|
-
new_options[envelope_key] = options
|
21
|
-
options = new_options
|
22
|
-
response = make_request(:post, path, options, custom_headers)
|
23
|
-
|
24
|
-
Resources::Role.new(unenvelope_body(response.body))
|
25
|
-
end
|
26
|
-
|
27
|
-
# List all existing roles
|
28
|
-
# Example URL: /roles
|
29
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
30
|
-
# Else, they will be the body of the request.
|
31
|
-
def list(options = {}, custom_headers = {})
|
32
|
-
path = '/roles'
|
33
|
-
|
34
|
-
response = make_request(:get, path, options, custom_headers)
|
35
|
-
ListResponse.new(
|
36
|
-
raw_response: response,
|
37
|
-
unenveloped_body: unenvelope_body(response.body),
|
38
|
-
resource_class: Resources::Role
|
39
|
-
)
|
40
|
-
end
|
41
|
-
|
42
|
-
# Get a lazily enumerated list of all the items returned. This is simmilar to the `list` method but will paginate for you automatically.
|
43
|
-
#
|
44
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
45
|
-
# Otherwise they will be the body of the request.
|
46
|
-
def all(options = {})
|
47
|
-
Paginator.new(
|
48
|
-
service: self,
|
49
|
-
path: '/roles',
|
50
|
-
options: options
|
51
|
-
).enumerator
|
52
|
-
end
|
53
|
-
|
54
|
-
# Retrieve all details for a single role
|
55
|
-
# Example URL: /roles/:identity
|
56
|
-
#
|
57
|
-
# @param identity # Unique identifier, beginning with "RO"
|
58
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
59
|
-
# Else, they will be the body of the request.
|
60
|
-
def get(identity, options = {}, custom_headers = {})
|
61
|
-
path = sub_url('/roles/:identity', 'identity' => identity)
|
62
|
-
|
63
|
-
response = make_request(:get, path, options, custom_headers)
|
64
|
-
|
65
|
-
Resources::Role.new(unenvelope_body(response.body))
|
66
|
-
end
|
67
|
-
|
68
|
-
# Updates a role object. Supports all of the fields supported when creating a
|
69
|
-
# role.
|
70
|
-
# Example URL: /roles/:identity
|
71
|
-
#
|
72
|
-
# @param identity # Unique identifier, beginning with "RO"
|
73
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
74
|
-
# Else, they will be the body of the request.
|
75
|
-
def update(identity, options = {}, custom_headers = {})
|
76
|
-
path = sub_url('/roles/:identity', 'identity' => identity)
|
77
|
-
|
78
|
-
new_options = {}
|
79
|
-
new_options[envelope_key] = options
|
80
|
-
options = new_options
|
81
|
-
response = make_request(:put, path, options, custom_headers)
|
82
|
-
|
83
|
-
Resources::Role.new(unenvelope_body(response.body))
|
84
|
-
end
|
85
|
-
|
86
|
-
# Disables a role
|
87
|
-
# Example URL: /roles/:identity/actions/disable
|
88
|
-
#
|
89
|
-
# @param identity # Unique identifier, beginning with "RO"
|
90
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
91
|
-
# Else, they will be the body of the request.
|
92
|
-
def disable(identity, options = {}, custom_headers = {})
|
93
|
-
path = sub_url('/roles/:identity/actions/disable', 'identity' => identity)
|
94
|
-
|
95
|
-
new_options = {}
|
96
|
-
new_options['data'] = options
|
97
|
-
options = new_options
|
98
|
-
response = make_request(:post, path, options, custom_headers)
|
99
|
-
|
100
|
-
Resources::Role.new(unenvelope_body(response.body))
|
101
|
-
end
|
102
|
-
|
103
|
-
# Unenvelope the response of the body using the service's `envelope_key`
|
104
|
-
#
|
105
|
-
# @param body [Hash]
|
106
|
-
def unenvelope_body(body)
|
107
|
-
body[envelope_key] || body['data']
|
108
|
-
end
|
109
|
-
|
110
|
-
private
|
111
|
-
|
112
|
-
# return the key which API responses will envelope data under
|
113
|
-
def envelope_key
|
114
|
-
'roles'
|
115
|
-
end
|
116
|
-
|
117
|
-
# take a URL with placeholder params and substitute them out for the acutal value
|
118
|
-
# @param url [String] the URL with placeholders in
|
119
|
-
# @param param_map [Hash] a hash of placeholders and their actual values
|
120
|
-
def sub_url(url, param_map)
|
121
|
-
param_map.reduce(url) do |new_url, (param, value)|
|
122
|
-
new_url.gsub(":#{param}", value)
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
@@ -1,148 +0,0 @@
|
|
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 GoCardless
|
10
|
-
module Services
|
11
|
-
# Service for making requests to the User endpoints
|
12
|
-
class UserService < BaseService
|
13
|
-
# <a name="user_exists"></a>Creates a new user object. Email addresses must be
|
14
|
-
# unique.
|
15
|
-
# Example URL: /users
|
16
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
17
|
-
# Else, they will be the body of the request.
|
18
|
-
def create(options = {}, custom_headers = {})
|
19
|
-
path = '/users'
|
20
|
-
new_options = {}
|
21
|
-
new_options[envelope_key] = options
|
22
|
-
options = new_options
|
23
|
-
response = make_request(:post, path, options, custom_headers)
|
24
|
-
|
25
|
-
Resources::User.new(unenvelope_body(response.body))
|
26
|
-
end
|
27
|
-
|
28
|
-
# Returns a
|
29
|
-
# [cursor-paginated](https://developer.gocardless.com/pro/#overview-cursor-pagination)
|
30
|
-
# list of your users.
|
31
|
-
# Example URL: /users
|
32
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
33
|
-
# Else, they will be the body of the request.
|
34
|
-
def list(options = {}, custom_headers = {})
|
35
|
-
path = '/users'
|
36
|
-
|
37
|
-
response = make_request(:get, path, options, custom_headers)
|
38
|
-
ListResponse.new(
|
39
|
-
raw_response: response,
|
40
|
-
unenveloped_body: unenvelope_body(response.body),
|
41
|
-
resource_class: Resources::User
|
42
|
-
)
|
43
|
-
end
|
44
|
-
|
45
|
-
# Get a lazily enumerated list of all the items returned. This is simmilar to the `list` method but will paginate for you automatically.
|
46
|
-
#
|
47
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
48
|
-
# Otherwise they will be the body of the request.
|
49
|
-
def all(options = {})
|
50
|
-
Paginator.new(
|
51
|
-
service: self,
|
52
|
-
path: '/users',
|
53
|
-
options: options
|
54
|
-
).enumerator
|
55
|
-
end
|
56
|
-
|
57
|
-
# Retrieves the details of an existing user. In addition to the usual
|
58
|
-
# permissions based access rules, any user can access their own record.
|
59
|
-
# Example URL: /users/:identity
|
60
|
-
#
|
61
|
-
# @param identity # Unique identifier, beginning with "US"
|
62
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
63
|
-
# Else, they will be the body of the request.
|
64
|
-
def get(identity, options = {}, custom_headers = {})
|
65
|
-
path = sub_url('/users/:identity', 'identity' => identity)
|
66
|
-
|
67
|
-
response = make_request(:get, path, options, custom_headers)
|
68
|
-
|
69
|
-
Resources::User.new(unenvelope_body(response.body))
|
70
|
-
end
|
71
|
-
|
72
|
-
# Updates a user object. Supports all of the fields supported when creating a
|
73
|
-
# user.
|
74
|
-
# Example URL: /users/:identity
|
75
|
-
#
|
76
|
-
# @param identity # Unique identifier, beginning with "US"
|
77
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
78
|
-
# Else, they will be the body of the request.
|
79
|
-
def update(identity, options = {}, custom_headers = {})
|
80
|
-
path = sub_url('/users/:identity', 'identity' => identity)
|
81
|
-
|
82
|
-
new_options = {}
|
83
|
-
new_options[envelope_key] = options
|
84
|
-
options = new_options
|
85
|
-
response = make_request(:put, path, options, custom_headers)
|
86
|
-
|
87
|
-
Resources::User.new(unenvelope_body(response.body))
|
88
|
-
end
|
89
|
-
|
90
|
-
# Enables a user
|
91
|
-
# Example URL: /users/:identity/actions/enable
|
92
|
-
#
|
93
|
-
# @param identity # Unique identifier, beginning with "US"
|
94
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
95
|
-
# Else, they will be the body of the request.
|
96
|
-
def enable(identity, options = {}, custom_headers = {})
|
97
|
-
path = sub_url('/users/:identity/actions/enable', 'identity' => identity)
|
98
|
-
|
99
|
-
new_options = {}
|
100
|
-
new_options['data'] = options
|
101
|
-
options = new_options
|
102
|
-
response = make_request(:post, path, options, custom_headers)
|
103
|
-
|
104
|
-
Resources::User.new(unenvelope_body(response.body))
|
105
|
-
end
|
106
|
-
|
107
|
-
# Disables a user
|
108
|
-
# Example URL: /users/:identity/actions/disable
|
109
|
-
#
|
110
|
-
# @param identity # Unique identifier, beginning with "US"
|
111
|
-
# @param options [Hash] parameters as a hash. If the request is a GET, these will be converted to query parameters.
|
112
|
-
# Else, they will be the body of the request.
|
113
|
-
def disable(identity, options = {}, custom_headers = {})
|
114
|
-
path = sub_url('/users/:identity/actions/disable', 'identity' => identity)
|
115
|
-
|
116
|
-
new_options = {}
|
117
|
-
new_options['data'] = options
|
118
|
-
options = new_options
|
119
|
-
response = make_request(:post, path, options, custom_headers)
|
120
|
-
|
121
|
-
Resources::User.new(unenvelope_body(response.body))
|
122
|
-
end
|
123
|
-
|
124
|
-
# Unenvelope the response of the body using the service's `envelope_key`
|
125
|
-
#
|
126
|
-
# @param body [Hash]
|
127
|
-
def unenvelope_body(body)
|
128
|
-
body[envelope_key] || body['data']
|
129
|
-
end
|
130
|
-
|
131
|
-
private
|
132
|
-
|
133
|
-
# return the key which API responses will envelope data under
|
134
|
-
def envelope_key
|
135
|
-
'users'
|
136
|
-
end
|
137
|
-
|
138
|
-
# take a URL with placeholder params and substitute them out for the acutal value
|
139
|
-
# @param url [String] the URL with placeholders in
|
140
|
-
# @param param_map [Hash] a hash of placeholders and their actual values
|
141
|
-
def sub_url(url, param_map)
|
142
|
-
param_map.reduce(url) do |new_url, (param, value)|
|
143
|
-
new_url.gsub(":#{param}", value)
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|