losant_rest 1.0.2 → 1.0.3
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/docs/_schemas.md +1002 -0
- data/docs/auth.md +32 -0
- data/docs/solution.md +115 -0
- data/docs/solutionUser.md +121 -0
- data/docs/solutionUsers.md +84 -0
- data/docs/solutions.md +79 -0
- data/lib/losant_rest/auth.rb +39 -0
- data/lib/losant_rest/client.rb +18 -2
- data/lib/losant_rest/solution.rb +134 -0
- data/lib/losant_rest/solution_user.rb +140 -0
- data/lib/losant_rest/solution_users.rb +104 -0
- data/lib/losant_rest/solutions.rb +100 -0
- data/lib/losant_rest/version.rb +1 -1
- data/lib/losant_rest.rb +4 -0
- data/schemas/authedSolutionUser.json +18 -0
- data/schemas/org.json +3 -0
- data/schemas/orgs.json +3 -0
- data/schemas/solution.json +74 -0
- data/schemas/solutionPatch.json +48 -0
- data/schemas/solutionPost.json +52 -0
- data/schemas/solutionUser.json +94 -0
- data/schemas/solutionUserCredentials.json +30 -0
- data/schemas/solutionUserPatch.json +64 -0
- data/schemas/solutionUserPost.json +70 -0
- data/schemas/solutionUsers.json +140 -0
- data/schemas/solutions.json +116 -0
- metadata +20 -2
data/lib/losant_rest/auth.rb
CHANGED
@@ -46,6 +46,45 @@ module LosantRest
|
|
46
46
|
body: body)
|
47
47
|
end
|
48
48
|
|
49
|
+
# Authenticates a solution user using the provided credentials
|
50
|
+
#
|
51
|
+
# Parameters:
|
52
|
+
# * {hash} credentials - Solution user authentication credentials (https://api.losant.com/#/definitions/solutionUserCredentials)
|
53
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
54
|
+
# * {boolean} _actions - Return resource actions in response
|
55
|
+
# * {boolean} _links - Return resource link in response
|
56
|
+
# * {boolean} _embedded - Return embedded resources in response
|
57
|
+
#
|
58
|
+
# Responses:
|
59
|
+
# * 200 - Successful authentication (https://api.losant.com/#/definitions/authedSolutionUser)
|
60
|
+
#
|
61
|
+
# Errors:
|
62
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
63
|
+
# * 401 - Unauthorized error if authentication fails (https://api.losant.com/#/definitions/error)
|
64
|
+
def authenticate_solution_user(params = {})
|
65
|
+
params = Utils.symbolize_hash_keys(params)
|
66
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
67
|
+
headers = {}
|
68
|
+
body = nil
|
69
|
+
|
70
|
+
raise ArgumentError.new("credentials is required") unless params.has_key?(:credentials)
|
71
|
+
|
72
|
+
body = params[:credentials] if params.has_key?(:credentials)
|
73
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
74
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
75
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
76
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
77
|
+
|
78
|
+
path = "/auth/solutionUser"
|
79
|
+
|
80
|
+
@client.request(
|
81
|
+
method: :post,
|
82
|
+
path: path,
|
83
|
+
query: query_params,
|
84
|
+
headers: headers,
|
85
|
+
body: body)
|
86
|
+
end
|
87
|
+
|
49
88
|
# Authenticates a user using the provided credentials
|
50
89
|
#
|
51
90
|
# Parameters:
|
data/lib/losant_rest/client.rb
CHANGED
@@ -5,7 +5,7 @@ module LosantRest
|
|
5
5
|
#
|
6
6
|
# User API for accessing Losant data
|
7
7
|
#
|
8
|
-
# Built For Version 1.4.
|
8
|
+
# Built For Version 1.4.3
|
9
9
|
class Client
|
10
10
|
attr_accessor :auth_token, :url
|
11
11
|
|
@@ -98,6 +98,22 @@ module LosantRest
|
|
98
98
|
@orgs ||= Orgs.new(self)
|
99
99
|
end
|
100
100
|
|
101
|
+
def solution
|
102
|
+
@solution ||= Solution.new(self)
|
103
|
+
end
|
104
|
+
|
105
|
+
def solution_user
|
106
|
+
@solution_user ||= SolutionUser.new(self)
|
107
|
+
end
|
108
|
+
|
109
|
+
def solution_users
|
110
|
+
@solution_users ||= SolutionUsers.new(self)
|
111
|
+
end
|
112
|
+
|
113
|
+
def solutions
|
114
|
+
@solutions ||= Solutions.new(self)
|
115
|
+
end
|
116
|
+
|
101
117
|
def webhook
|
102
118
|
@webhook ||= Webhook.new(self)
|
103
119
|
end
|
@@ -112,7 +128,7 @@ module LosantRest
|
|
112
128
|
|
113
129
|
headers["Accept"] = "application/json"
|
114
130
|
headers["Content-Type"] = "application/json"
|
115
|
-
headers["Accept-Version"] = "^1.4.
|
131
|
+
headers["Accept-Version"] = "^1.4.3"
|
116
132
|
headers["Authorization"] = "Bearer #{self.auth_token}" if self.auth_token
|
117
133
|
path = self.url + options.fetch(:path, "")
|
118
134
|
|
@@ -0,0 +1,134 @@
|
|
1
|
+
module LosantRest
|
2
|
+
|
3
|
+
# Class containing all the actions for the Solution Resource
|
4
|
+
class Solution
|
5
|
+
|
6
|
+
def initialize(client)
|
7
|
+
@client = client
|
8
|
+
end
|
9
|
+
|
10
|
+
# Deletes a solution
|
11
|
+
#
|
12
|
+
# Parameters:
|
13
|
+
# * {string} orgId - ID associated with the organization
|
14
|
+
# * {string} solutionId - ID associated with the solution
|
15
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
16
|
+
# * {boolean} _actions - Return resource actions in response
|
17
|
+
# * {boolean} _links - Return resource link in response
|
18
|
+
# * {boolean} _embedded - Return embedded resources in response
|
19
|
+
#
|
20
|
+
# Responses:
|
21
|
+
# * 200 - If solution was successfully deleted (https://api.losant.com/#/definitions/success)
|
22
|
+
#
|
23
|
+
# Errors:
|
24
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
25
|
+
# * 404 - Error if solution was not found (https://api.losant.com/#/definitions/error)
|
26
|
+
def delete(params = {})
|
27
|
+
params = Utils.symbolize_hash_keys(params)
|
28
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
29
|
+
headers = {}
|
30
|
+
body = nil
|
31
|
+
|
32
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
33
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
34
|
+
|
35
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
36
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
37
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
38
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
39
|
+
|
40
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}"
|
41
|
+
|
42
|
+
@client.request(
|
43
|
+
method: :delete,
|
44
|
+
path: path,
|
45
|
+
query: query_params,
|
46
|
+
headers: headers,
|
47
|
+
body: body)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Retrieves information on a solution
|
51
|
+
#
|
52
|
+
# Parameters:
|
53
|
+
# * {string} orgId - ID associated with the organization
|
54
|
+
# * {string} solutionId - ID associated with the solution
|
55
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
56
|
+
# * {boolean} _actions - Return resource actions in response
|
57
|
+
# * {boolean} _links - Return resource link in response
|
58
|
+
# * {boolean} _embedded - Return embedded resources in response
|
59
|
+
#
|
60
|
+
# Responses:
|
61
|
+
# * 200 - Solution information (https://api.losant.com/#/definitions/solution)
|
62
|
+
#
|
63
|
+
# Errors:
|
64
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
65
|
+
# * 404 - Error if solution was not found (https://api.losant.com/#/definitions/error)
|
66
|
+
def get(params = {})
|
67
|
+
params = Utils.symbolize_hash_keys(params)
|
68
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
69
|
+
headers = {}
|
70
|
+
body = nil
|
71
|
+
|
72
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
73
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
74
|
+
|
75
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
76
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
77
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
78
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
79
|
+
|
80
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}"
|
81
|
+
|
82
|
+
@client.request(
|
83
|
+
method: :get,
|
84
|
+
path: path,
|
85
|
+
query: query_params,
|
86
|
+
headers: headers,
|
87
|
+
body: body)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Updates information about a solution
|
91
|
+
#
|
92
|
+
# Parameters:
|
93
|
+
# * {string} orgId - ID associated with the organization
|
94
|
+
# * {string} solutionId - ID associated with the solution
|
95
|
+
# * {hash} solution - Object containing new properties of the solution (https://api.losant.com/#/definitions/solutionPatch)
|
96
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
97
|
+
# * {boolean} _actions - Return resource actions in response
|
98
|
+
# * {boolean} _links - Return resource link in response
|
99
|
+
# * {boolean} _embedded - Return embedded resources in response
|
100
|
+
#
|
101
|
+
# Responses:
|
102
|
+
# * 200 - Updated solution information (https://api.losant.com/#/definitions/solution)
|
103
|
+
#
|
104
|
+
# Errors:
|
105
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
106
|
+
# * 404 - Error if solution was not found (https://api.losant.com/#/definitions/error)
|
107
|
+
def patch(params = {})
|
108
|
+
params = Utils.symbolize_hash_keys(params)
|
109
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
110
|
+
headers = {}
|
111
|
+
body = nil
|
112
|
+
|
113
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
114
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
115
|
+
raise ArgumentError.new("solution is required") unless params.has_key?(:solution)
|
116
|
+
|
117
|
+
body = params[:solution] if params.has_key?(:solution)
|
118
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
119
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
120
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
121
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
122
|
+
|
123
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}"
|
124
|
+
|
125
|
+
@client.request(
|
126
|
+
method: :patch,
|
127
|
+
path: path,
|
128
|
+
query: query_params,
|
129
|
+
headers: headers,
|
130
|
+
body: body)
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
module LosantRest
|
2
|
+
|
3
|
+
# Class containing all the actions for the Solution User Resource
|
4
|
+
class SolutionUser
|
5
|
+
|
6
|
+
def initialize(client)
|
7
|
+
@client = client
|
8
|
+
end
|
9
|
+
|
10
|
+
# Deletes a solution user
|
11
|
+
#
|
12
|
+
# Parameters:
|
13
|
+
# * {string} orgId - ID associated with the organization
|
14
|
+
# * {string} solutionId - ID associated with the solution
|
15
|
+
# * {string} solutionUserId - ID associated with the solution user
|
16
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
17
|
+
# * {boolean} _actions - Return resource actions in response
|
18
|
+
# * {boolean} _links - Return resource link in response
|
19
|
+
# * {boolean} _embedded - Return embedded resources in response
|
20
|
+
#
|
21
|
+
# Responses:
|
22
|
+
# * 200 - If solution user was successfully deleted (https://api.losant.com/#/definitions/success)
|
23
|
+
#
|
24
|
+
# Errors:
|
25
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
26
|
+
# * 404 - Error if solution user was not found (https://api.losant.com/#/definitions/error)
|
27
|
+
def delete(params = {})
|
28
|
+
params = Utils.symbolize_hash_keys(params)
|
29
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
30
|
+
headers = {}
|
31
|
+
body = nil
|
32
|
+
|
33
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
34
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
35
|
+
raise ArgumentError.new("solutionUserId is required") unless params.has_key?(:solutionUserId)
|
36
|
+
|
37
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
38
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
39
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
40
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
41
|
+
|
42
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}/users/#{params[:solutionUserId]}"
|
43
|
+
|
44
|
+
@client.request(
|
45
|
+
method: :delete,
|
46
|
+
path: path,
|
47
|
+
query: query_params,
|
48
|
+
headers: headers,
|
49
|
+
body: body)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Retrieves information on a solution user
|
53
|
+
#
|
54
|
+
# Parameters:
|
55
|
+
# * {string} orgId - ID associated with the organization
|
56
|
+
# * {string} solutionId - ID associated with the solution
|
57
|
+
# * {string} solutionUserId - ID associated with the solution user
|
58
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
59
|
+
# * {boolean} _actions - Return resource actions in response
|
60
|
+
# * {boolean} _links - Return resource link in response
|
61
|
+
# * {boolean} _embedded - Return embedded resources in response
|
62
|
+
#
|
63
|
+
# Responses:
|
64
|
+
# * 200 - Solution user information (https://api.losant.com/#/definitions/solutionUser)
|
65
|
+
#
|
66
|
+
# Errors:
|
67
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
68
|
+
# * 404 - Error if solution user was not found (https://api.losant.com/#/definitions/error)
|
69
|
+
def get(params = {})
|
70
|
+
params = Utils.symbolize_hash_keys(params)
|
71
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
72
|
+
headers = {}
|
73
|
+
body = nil
|
74
|
+
|
75
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
76
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
77
|
+
raise ArgumentError.new("solutionUserId is required") unless params.has_key?(:solutionUserId)
|
78
|
+
|
79
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
80
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
81
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
82
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
83
|
+
|
84
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}/users/#{params[:solutionUserId]}"
|
85
|
+
|
86
|
+
@client.request(
|
87
|
+
method: :get,
|
88
|
+
path: path,
|
89
|
+
query: query_params,
|
90
|
+
headers: headers,
|
91
|
+
body: body)
|
92
|
+
end
|
93
|
+
|
94
|
+
# Updates information about a solution user
|
95
|
+
#
|
96
|
+
# Parameters:
|
97
|
+
# * {string} orgId - ID associated with the organization
|
98
|
+
# * {string} solutionId - ID associated with the solution
|
99
|
+
# * {string} solutionUserId - ID associated with the solution user
|
100
|
+
# * {hash} solutionUser - Object containing new properties of the solution user (https://api.losant.com/#/definitions/solutionUserPatch)
|
101
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
102
|
+
# * {boolean} _actions - Return resource actions in response
|
103
|
+
# * {boolean} _links - Return resource link in response
|
104
|
+
# * {boolean} _embedded - Return embedded resources in response
|
105
|
+
#
|
106
|
+
# Responses:
|
107
|
+
# * 200 - Updated solution user information (https://api.losant.com/#/definitions/solutionUser)
|
108
|
+
#
|
109
|
+
# Errors:
|
110
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
111
|
+
# * 404 - Error if solution user was not found (https://api.losant.com/#/definitions/error)
|
112
|
+
def patch(params = {})
|
113
|
+
params = Utils.symbolize_hash_keys(params)
|
114
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
115
|
+
headers = {}
|
116
|
+
body = nil
|
117
|
+
|
118
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
119
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
120
|
+
raise ArgumentError.new("solutionUserId is required") unless params.has_key?(:solutionUserId)
|
121
|
+
raise ArgumentError.new("solutionUser is required") unless params.has_key?(:solutionUser)
|
122
|
+
|
123
|
+
body = params[:solutionUser] if params.has_key?(:solutionUser)
|
124
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
125
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
126
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
127
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
128
|
+
|
129
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}/users/#{params[:solutionUserId]}"
|
130
|
+
|
131
|
+
@client.request(
|
132
|
+
method: :patch,
|
133
|
+
path: path,
|
134
|
+
query: query_params,
|
135
|
+
headers: headers,
|
136
|
+
body: body)
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
module LosantRest
|
2
|
+
|
3
|
+
# Class containing all the actions for the Solution Users Resource
|
4
|
+
class SolutionUsers
|
5
|
+
|
6
|
+
def initialize(client)
|
7
|
+
@client = client
|
8
|
+
end
|
9
|
+
|
10
|
+
# Returns the users for the solution
|
11
|
+
#
|
12
|
+
# Parameters:
|
13
|
+
# * {string} orgId - ID associated with the organization
|
14
|
+
# * {string} solutionId - ID associated with the solution
|
15
|
+
# * {string} sortField - Field to sort the results by. Accepted values are: email, firstName, lastName, id, creationDate, lastLogin
|
16
|
+
# * {string} sortDirection - Direction to sort the results by. Accepted values are: asc, desc
|
17
|
+
# * {string} page - Which page of results to return
|
18
|
+
# * {string} perPage - How many items to return per page
|
19
|
+
# * {string} filterField - Field to filter the results by. Blank or not provided means no filtering. Accepted values are: email, firstName, lastName
|
20
|
+
# * {string} filter - Filter to apply against the filtered field. Supports globbing. Blank or not provided means no filtering.
|
21
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
22
|
+
# * {boolean} _actions - Return resource actions in response
|
23
|
+
# * {boolean} _links - Return resource link in response
|
24
|
+
# * {boolean} _embedded - Return embedded resources in response
|
25
|
+
#
|
26
|
+
# Responses:
|
27
|
+
# * 200 - Collection of solution users (https://api.losant.com/#/definitions/solutionUsers)
|
28
|
+
#
|
29
|
+
# Errors:
|
30
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
31
|
+
def get(params = {})
|
32
|
+
params = Utils.symbolize_hash_keys(params)
|
33
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
34
|
+
headers = {}
|
35
|
+
body = nil
|
36
|
+
|
37
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
38
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
39
|
+
|
40
|
+
query_params[:sortField] = params[:sortField] if params.has_key?(:sortField)
|
41
|
+
query_params[:sortDirection] = params[:sortDirection] if params.has_key?(:sortDirection)
|
42
|
+
query_params[:page] = params[:page] if params.has_key?(:page)
|
43
|
+
query_params[:perPage] = params[:perPage] if params.has_key?(:perPage)
|
44
|
+
query_params[:filterField] = params[:filterField] if params.has_key?(:filterField)
|
45
|
+
query_params[:filter] = params[:filter] if params.has_key?(:filter)
|
46
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
47
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
48
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
49
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
50
|
+
|
51
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}/users"
|
52
|
+
|
53
|
+
@client.request(
|
54
|
+
method: :get,
|
55
|
+
path: path,
|
56
|
+
query: query_params,
|
57
|
+
headers: headers,
|
58
|
+
body: body)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Create a new solution user
|
62
|
+
#
|
63
|
+
# Parameters:
|
64
|
+
# * {string} orgId - ID associated with the organization
|
65
|
+
# * {string} solutionId - ID associated with the solution
|
66
|
+
# * {hash} solutionUser - New solution user information (https://api.losant.com/#/definitions/solutionUserPost)
|
67
|
+
# * {string} losantdomain - Domain scope of request (rarely needed)
|
68
|
+
# * {boolean} _actions - Return resource actions in response
|
69
|
+
# * {boolean} _links - Return resource link in response
|
70
|
+
# * {boolean} _embedded - Return embedded resources in response
|
71
|
+
#
|
72
|
+
# Responses:
|
73
|
+
# * 201 - Successfully created solution user (https://api.losant.com/#/definitions/solutionUser)
|
74
|
+
#
|
75
|
+
# Errors:
|
76
|
+
# * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
|
77
|
+
def post(params = {})
|
78
|
+
params = Utils.symbolize_hash_keys(params)
|
79
|
+
query_params = { _actions: false, _links: true, _embedded: true }
|
80
|
+
headers = {}
|
81
|
+
body = nil
|
82
|
+
|
83
|
+
raise ArgumentError.new("orgId is required") unless params.has_key?(:orgId)
|
84
|
+
raise ArgumentError.new("solutionId is required") unless params.has_key?(:solutionId)
|
85
|
+
raise ArgumentError.new("solutionUser is required") unless params.has_key?(:solutionUser)
|
86
|
+
|
87
|
+
body = params[:solutionUser] if params.has_key?(:solutionUser)
|
88
|
+
headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
|
89
|
+
query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
|
90
|
+
query_params[:_links] = params[:_links] if params.has_key?(:_links)
|
91
|
+
query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
|
92
|
+
|
93
|
+
path = "/orgs/#{params[:orgId]}/solutions/#{params[:solutionId]}/users"
|
94
|
+
|
95
|
+
@client.request(
|
96
|
+
method: :post,
|
97
|
+
path: path,
|
98
|
+
query: query_params,
|
99
|
+
headers: headers,
|
100
|
+
body: body)
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|