kinetic_sdk 5.0.13 → 5.0.18
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/CHANGELOG.md +32 -0
- data/lib/kinetic_sdk/agent/lib/bridges.rb +0 -1
- data/lib/kinetic_sdk/agent/lib/filestores.rb +0 -1
- data/lib/kinetic_sdk/agent/lib/handler.rb +0 -1
- data/lib/kinetic_sdk/core/lib/datastore_submissions.rb +55 -6
- data/lib/kinetic_sdk/core/lib/platform_components.rb +0 -1
- data/lib/kinetic_sdk/core/lib/submissions.rb +66 -8
- data/lib/kinetic_sdk/core/lib/teams.rb +12 -0
- data/lib/kinetic_sdk/core/lib/users.rb +12 -1
- data/lib/kinetic_sdk/task/lib/sources.rb +1 -1
- data/lib/kinetic_sdk/utils/kinetic-http.rb +10 -9
- data/lib/kinetic_sdk/version.rb +1 -1
- metadata +25 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfcd66e7c8773a12f2b7ddf6cf6cab0dd122c1e435ed0022a8061dc53e9a5391
|
4
|
+
data.tar.gz: 5cc5b32609b8ebb40129bc66cd0a28a4168b63820a61e76541d9382c899b30f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a5dee48734bee20e4b7e28217d0e9ecb4ffb862e87cb5528957580845224326b4e3bef7d6479075c96c95a604acc325c0ef434ed1dfd11ed4d058a34a8e2885
|
7
|
+
data.tar.gz: bf57bcac5081d6dc31cf828564e58ec899d54fcbf3c8a118ab3a4064117440a5f0ac3b69d2cf9552624079e3bf732889fbe66dc00ea694e8dd2f5e2acc698e43
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,37 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [5.0.18](https://github.com/kineticdata/kinetic-sdk-rb/tree/5.0.18) (2021-03-25)
|
4
|
+
|
5
|
+
**Implemented enhancements:**
|
6
|
+
|
7
|
+
- Implemented method to enable searching for users against the system api (find_users_in_system)
|
8
|
+
|
9
|
+
## [5.0.17](https://github.com/kineticdata/kinetic-sdk-rb/tree/5.0.17) (2021-02-25)
|
10
|
+
|
11
|
+
**Implemented enhancements:**
|
12
|
+
|
13
|
+
- Bug fix related to removing user from a team
|
14
|
+
|
15
|
+
|
16
|
+
## [5.0.16](https://github.com/kineticdata/kinetic-sdk-rb/tree/5.0.16) (2021-02-25)
|
17
|
+
|
18
|
+
**Implemented enhancements:**
|
19
|
+
|
20
|
+
- Implmented ability to remove user from a team
|
21
|
+
|
22
|
+
## [5.0.15](https://github.com/kineticdata/kinetic-sdk-rb/releases/tag/5.0.15) (2021-01-20)
|
23
|
+
|
24
|
+
**Implemented enhancements:**
|
25
|
+
|
26
|
+
- Bug Fixes
|
27
|
+
|
28
|
+
## [5.0.14](https://github.com/kineticdata/kinetic-sdk-rb/releases/tag/5.0.14) (2021-01-15)
|
29
|
+
|
30
|
+
**Implemented enhancements:**
|
31
|
+
|
32
|
+
- Support for submitting attachments (datastore and form submissions)
|
33
|
+
- Bug Fixes
|
34
|
+
|
3
35
|
## [5.0.13](https://github.com/kineticdata/kinetic-sdk-rb/releases/tag/5.0.13) (2020-09-03)
|
4
36
|
|
5
37
|
**Implemented enhancements:**
|
@@ -8,15 +8,16 @@ module KineticSdk
|
|
8
8
|
# - +origin+ - Origin ID of the submission to be added
|
9
9
|
# - +parent+ - Parent ID of the submission to be added
|
10
10
|
# - +values+ - hash of field values for the submission
|
11
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
11
12
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
12
13
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
13
14
|
def add_datastore_submission(form_slug, payload={}, headers=default_headers)
|
14
|
-
# initialize "values" if nil
|
15
|
-
payload["values"] = {} if payload["values"].nil?
|
16
15
|
# set origin hash if origin was passed as a string
|
17
16
|
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
18
17
|
# set parent hash if parent was passed as a string
|
19
18
|
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
19
|
+
# prepare any attachment values
|
20
|
+
payload["values"] = prepare_new_datastore_submission_values(form_slug, payload["values"])
|
20
21
|
# Create the submission
|
21
22
|
@logger.info("Adding a submission in the \"#{form_slug}\" Datastore Form.")
|
22
23
|
post("#{@api_url}/datastore/forms/#{form_slug}/submissions", payload, headers)
|
@@ -30,15 +31,16 @@ module KineticSdk
|
|
30
31
|
# - +origin+ - Origin ID of the submission to be added
|
31
32
|
# - +parent+ - Parent ID of the submission to be added
|
32
33
|
# - +values+ - hash of field values for the submission
|
34
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
33
35
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
34
36
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
35
37
|
def add_datastore_submission_page(form_slug, page_name, payload={}, headers=default_headers)
|
36
|
-
# initialize "values" if nil
|
37
|
-
payload["values"] = {} if payload["values"].nil?
|
38
38
|
# set origin hash if origin was passed as a string
|
39
39
|
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
40
40
|
# set parent hash if parent was passed as a string
|
41
41
|
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
42
|
+
# prepare any attachment values
|
43
|
+
payload["values"] = prepare_new_datastore_submission_values(form_slug, payload["values"])
|
42
44
|
# Create the submission
|
43
45
|
@logger.info("Adding a submission page in the \"#{form_slug}\" Datastore Form.")
|
44
46
|
post("#{@api_url}/datastore/forms/#{form_slug}/submissions?page=#{encode(page_name)}", payload, headers)
|
@@ -51,22 +53,47 @@ module KineticSdk
|
|
51
53
|
# - +origin+ - Origin ID of the submission to be patched
|
52
54
|
# - +parent+ - Parent ID of the submission to be patched
|
53
55
|
# - +values+ - hash of field values for the submission
|
56
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
54
57
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
55
58
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
56
59
|
def patch_datastore_submission(form_slug, payload={}, headers=default_headers)
|
57
60
|
# set the currentPage hash if currentPage was passed as a string
|
58
61
|
payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
|
59
|
-
# initialize "values" if nil
|
60
|
-
payload["values"] = {} if payload["values"].nil?
|
61
62
|
# set origin hash if origin was passed as a string
|
62
63
|
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
63
64
|
# set parent hash if parent was passed as a string
|
64
65
|
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
66
|
+
# prepare any attachment values
|
67
|
+
payload["values"] = prepare_new_datastore_submission_values(form_slug, payload["values"])
|
65
68
|
# Create the submission
|
66
69
|
@logger.info("Patching a submission in the \"#{form_slug}\" Form.")
|
67
70
|
patch("#{@api_url}/datastore/forms/#{form_slug}/submissions", payload, headers)
|
68
71
|
end
|
69
72
|
|
73
|
+
# Patch an existing Datastore Submission
|
74
|
+
#
|
75
|
+
# @param submission_id [String] id of the Submission
|
76
|
+
# @param payload [Hash] payload of the submission
|
77
|
+
# - +origin+ - Origin ID of the submission to be patched
|
78
|
+
# - +parent+ - Parent ID of the submission to be patched
|
79
|
+
# - +values+ - hash of field values for the submission
|
80
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
81
|
+
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
82
|
+
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
83
|
+
def patch_existing_datastore_submission(submission_id, payload={}, headers=default_headers)
|
84
|
+
# set the currentPage hash if currentPage was passed as a string
|
85
|
+
payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
|
86
|
+
# set origin hash if origin was passed as a string
|
87
|
+
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
88
|
+
# set parent hash if parent was passed as a string
|
89
|
+
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
90
|
+
# prepare any attachment values
|
91
|
+
payload["values"] = prepare_updated_datastore_submission_values(submission_id, payload["values"])
|
92
|
+
# Update the submission
|
93
|
+
@logger.info("Patching a submission with id \"#{submission_id}\"")
|
94
|
+
patch("#{@api_url}/datastore/submissions/#{submission_id}", payload, headers)
|
95
|
+
end
|
96
|
+
|
70
97
|
# Find all Submissions for a Datastore Form.
|
71
98
|
#
|
72
99
|
# This method will process pages of form submissions and internally
|
@@ -164,5 +191,27 @@ module KineticSdk
|
|
164
191
|
delete("#{@api_url}/datastore/submissions/#{encode(submission_id)}", headers)
|
165
192
|
end
|
166
193
|
|
194
|
+
private
|
195
|
+
|
196
|
+
# Prepares new datastore submission values for attachment fields
|
197
|
+
#
|
198
|
+
# @param form_slug [String] datastore form slug
|
199
|
+
# @param values [Hash] hash of values being submitted
|
200
|
+
# @return [Hash] hash of values with attachment paths replaced with uploaded file information
|
201
|
+
def prepare_new_datastore_submission_values(form_slug, values)
|
202
|
+
file_upload_url = "#{@api_url.gsub('/api/v1','')}/datastore/forms/#{form_slug}/files"
|
203
|
+
prepare_submission_values(values, file_upload_url)
|
204
|
+
end
|
205
|
+
|
206
|
+
# Prepares updated datastore submission values for attachment fields
|
207
|
+
#
|
208
|
+
# @param submission_id [String] id of the Submission
|
209
|
+
# @param values [Hash] hash of values being submitted
|
210
|
+
# @return [Hash] hash of values with attachment paths replaced with uploaded file information
|
211
|
+
def prepare_updated_datastore_submission_values(submission_id, values)
|
212
|
+
file_upload_url = "#{@api_url.gsub('/api/v1','')}/datastore/submissions/#{submission_id}/files"
|
213
|
+
prepare_submission_values(values, file_upload_url)
|
214
|
+
end
|
215
|
+
|
167
216
|
end
|
168
217
|
end
|
@@ -79,7 +79,6 @@ module KineticSdk
|
|
79
79
|
# Delete Agent Component
|
80
80
|
#
|
81
81
|
# @param agent_slug [String] the slug of the agent to retrieve
|
82
|
-
# @param params [Hash] Query parameters that are added to the URL, such as +include+
|
83
82
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
84
83
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
85
84
|
def delete_agent_component(agent_slug, headers = default_headers)
|
@@ -9,18 +9,19 @@ module KineticSdk
|
|
9
9
|
# - +origin+ - Origin ID of the submission to be added
|
10
10
|
# - +parent+ - Parent ID of the submission to be added
|
11
11
|
# - +values+ - hash of field values for the submission
|
12
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
12
13
|
# @param parameters [Hash] hash of query parameters to append to the URL
|
13
14
|
# - +include+ - comma-separated list of properties to include in the response
|
14
15
|
# - +completed+ - signals that the submission should be completed, default is false
|
15
16
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
16
17
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
17
18
|
def add_submission(kapp_slug, form_slug, payload={}, parameters={}, headers=default_headers)
|
18
|
-
# initialize "values" if nil
|
19
|
-
payload["values"] = {} if payload["values"].nil?
|
20
19
|
# set origin hash if origin was passed as a string
|
21
20
|
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
22
21
|
# set parent hash if parent was passed as a string
|
23
22
|
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
23
|
+
# prepare any attachment values
|
24
|
+
payload["values"] = prepare_new_submission_values(kapp_slug, form_slug, payload["values"])
|
24
25
|
# build the uri with the encoded parameters
|
25
26
|
uri = URI.parse("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}/submissions")
|
26
27
|
uri.query = URI.encode_www_form(parameters) unless parameters.empty?
|
@@ -38,6 +39,7 @@ module KineticSdk
|
|
38
39
|
# - +origin+ - Origin ID of the submission to be added
|
39
40
|
# - +parent+ - Parent ID of the submission to be added
|
40
41
|
# - +values+ - hash of field values for the submission
|
42
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
41
43
|
# @param parameters [Hash] hash of query parameters to append to the URL
|
42
44
|
# - +include+ - comma-separated list of properties to include in the response
|
43
45
|
# - +staged+ - Indicates whether field validations and page advancement should occur, default is false
|
@@ -45,12 +47,12 @@ module KineticSdk
|
|
45
47
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
46
48
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
47
49
|
def add_submission_page(kapp_slug, form_slug, page_name, payload={}, parameters={}, headers=default_headers)
|
48
|
-
# initialize "values" if nil
|
49
|
-
payload["values"] = {} if payload["values"].nil?
|
50
50
|
# set origin hash if origin was passed as a string
|
51
51
|
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
52
52
|
# set parent hash if parent was passed as a string
|
53
53
|
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
54
|
+
# prepare any attachment values
|
55
|
+
payload["values"] = prepare_new_submission_values(kapp_slug, form_slug, payload["values"])
|
54
56
|
# add the page name to the parameters
|
55
57
|
parameters["page"] = page_name
|
56
58
|
# build the uri with the encoded parameters
|
@@ -69,17 +71,18 @@ module KineticSdk
|
|
69
71
|
# - +origin+ - Origin ID of the submission to be patched
|
70
72
|
# - +parent+ - Parent ID of the submission to be patched
|
71
73
|
# - +values+ - hash of field values for the submission
|
74
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
72
75
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
73
76
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
74
77
|
def patch_new_submission(kapp_slug, form_slug, payload={}, headers=default_headers)
|
75
78
|
# set the currentPage hash if currentPage was passed as a string
|
76
79
|
payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
|
77
|
-
# initialize "values" if nil
|
78
|
-
payload["values"] = {} if payload["values"].nil?
|
79
80
|
# set origin hash if origin was passed as a string
|
80
81
|
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
81
82
|
# set parent hash if parent was passed as a string
|
82
83
|
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
84
|
+
# prepare any attachment values
|
85
|
+
payload["values"] = prepare_new_submission_values(kapp_slug, form_slug, payload["values"])
|
83
86
|
# Create the submission
|
84
87
|
@logger.info("Patching a submission in the \"#{form_slug}\" Form.")
|
85
88
|
patch("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}/submissions", payload, headers)
|
@@ -92,17 +95,18 @@ module KineticSdk
|
|
92
95
|
# - +origin+ - Origin ID of the submission to be patched
|
93
96
|
# - +parent+ - Parent ID of the submission to be patched
|
94
97
|
# - +values+ - hash of field values for the submission
|
98
|
+
# - attachment fields contain an Array of Hashes. Each hash represents an attachment answer for the field. The hash must include a `path` property with a value to represent the local file location.)
|
95
99
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
96
100
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
97
101
|
def patch_existing_submission(submission_id, payload={}, headers=default_headers)
|
98
102
|
# set the currentPage hash if currentPage was passed as a string
|
99
103
|
payload["currentPage"] = { "name" => payload["currentPage"] } if payload["currentPage"].is_a? String
|
100
|
-
# initialize "values" if nil
|
101
|
-
payload["values"] = {} if payload["values"].nil?
|
102
104
|
# set origin hash if origin was passed as a string
|
103
105
|
payload["origin"] = { "id" => payload["origin"] } if payload["origin"].is_a? String
|
104
106
|
# set parent hash if parent was passed as a string
|
105
107
|
payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
|
108
|
+
# prepare any attachment values
|
109
|
+
payload["values"] = prepare_updated_submission_values(submission_id, payload["values"])
|
106
110
|
# Create the submission
|
107
111
|
@logger.info("Patching a submission with id \"#{submission_id}\"")
|
108
112
|
patch("#{@api_url}/submissions/#{submission_id}", payload, headers)
|
@@ -211,5 +215,59 @@ module KineticSdk
|
|
211
215
|
put("#{@api_url}/submissions/#{encode(submission_id)}", body, headers)
|
212
216
|
end
|
213
217
|
|
218
|
+
private
|
219
|
+
|
220
|
+
# Prepares new submission values for attachment fields
|
221
|
+
#
|
222
|
+
# @param kapp_slug [String] kapp slug
|
223
|
+
# @param form_slug [String] form slug
|
224
|
+
# @param values [Hash] hash of values being submitted
|
225
|
+
# @return [Hash] hash of values with attachment paths replaced with uploaded file information
|
226
|
+
def prepare_new_submission_values(kapp_slug, form_slug, values)
|
227
|
+
file_upload_url = "#{@api_url.gsub('/app/api/v1','')}/#{kapp_slug}/#{form_slug}/files"
|
228
|
+
prepare_submission_values(values, file_upload_url)
|
229
|
+
end
|
230
|
+
|
231
|
+
# Prepares updated submission values for attachment fields
|
232
|
+
#
|
233
|
+
# @param submission_id [String] id of the Submission
|
234
|
+
# @param values [Hash] hash of values being submitted
|
235
|
+
# @return [Hash] hash of values with attachment paths replaced with uploaded file information
|
236
|
+
def prepare_updated_submission_values(submission_id, values)
|
237
|
+
file_upload_url = "#{@api_url.gsub('/app/api/v1','')}/submissions/#{submission_id}/files"
|
238
|
+
prepare_submission_values(values, file_upload_url)
|
239
|
+
end
|
240
|
+
|
241
|
+
# Prepares submission values for attachment fields
|
242
|
+
#
|
243
|
+
# @param values [Hash] hash of values being submitted
|
244
|
+
# @param file_upload_url [String] url to post attachments
|
245
|
+
# @return [Hash] hash of values with attachment paths replaced with uploaded file information
|
246
|
+
def prepare_submission_values(values, file_upload_url)
|
247
|
+
# initialize the values
|
248
|
+
values = {} if values.nil?
|
249
|
+
# handle attachment values
|
250
|
+
values.each do |field, value|
|
251
|
+
# if the value contains an array of files
|
252
|
+
if value.is_a?(Array) && !value.empty? && value.first.is_a?(Hash) && value.first.has_key?('path')
|
253
|
+
value.each_with_index do |file, index|
|
254
|
+
# upload the file to the server
|
255
|
+
file_upload_response = post_multipart(
|
256
|
+
file_upload_url,
|
257
|
+
{ "package" => File.new(file['path']) },
|
258
|
+
default_headers)
|
259
|
+
# update the value with the file upload response
|
260
|
+
if file_upload_response.status == 200
|
261
|
+
values[field][index] = file_upload_response.content.first
|
262
|
+
else
|
263
|
+
raise "Attachment file upload failed: (#{file_upload_response.status}) #{file_upload_response.content_string}"
|
264
|
+
end
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
268
|
+
# return the values
|
269
|
+
values
|
270
|
+
end
|
271
|
+
|
214
272
|
end
|
215
273
|
end
|
@@ -73,6 +73,18 @@ module KineticSdk
|
|
73
73
|
post("#{@api_url}/memberships/", body, headers)
|
74
74
|
end
|
75
75
|
|
76
|
+
# remove a team membership
|
77
|
+
#
|
78
|
+
# @param team_name [String] the team name
|
79
|
+
# @param username [String] the username to remove to the team
|
80
|
+
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
81
|
+
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
82
|
+
def remove_team_membership(team_name, username, headers=default_headers)
|
83
|
+
team_slug = Digest::MD5.hexdigest(team_name)
|
84
|
+
@logger.info("Removing user: \"#{username}\" from \"#{team_name}\" team")
|
85
|
+
delete("#{@api_url}/memberships/#{team_slug}_#{username}", headers)
|
86
|
+
end
|
87
|
+
|
76
88
|
# Find teams
|
77
89
|
#
|
78
90
|
# @param params [Hash] Query parameters that are added to the URL, such as +include+
|
@@ -166,10 +166,21 @@ module KineticSdk
|
|
166
166
|
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
167
167
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
168
168
|
def find_users(params={}, headers=default_headers)
|
169
|
-
@logger.info("Finding Users
|
169
|
+
@logger.info("Finding Users")
|
170
170
|
get("#{@api_url}/users", params, headers)
|
171
171
|
end
|
172
172
|
|
173
|
+
# Find all users with the system api
|
174
|
+
#
|
175
|
+
# @param space_slug [String] slug of the space to find users in when using the system api
|
176
|
+
# @param params [Hash] Query parameters that are added to the URL, such as +include+
|
177
|
+
# @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
|
178
|
+
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
179
|
+
def find_users_in_system(space_slug, params={}, headers=default_headers)
|
180
|
+
@logger.info("Finding Users")
|
181
|
+
get("#{@api_url}/spaces/#{space_slug}/users", params, headers)
|
182
|
+
end
|
183
|
+
|
173
184
|
# Find the user
|
174
185
|
#
|
175
186
|
# @param username [String] username of the user
|
@@ -49,7 +49,7 @@ module KineticSdk
|
|
49
49
|
# @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
|
50
50
|
def delete_sources(headers=header_basic_auth)
|
51
51
|
@logger.info("Deleting all sources")
|
52
|
-
(find_sources(headers).content[
|
52
|
+
(find_sources(headers).content["sourceRoots"] || []).each do |source|
|
53
53
|
delete("#{@api_url}/sources/#{encode(source['name'])}", headers)
|
54
54
|
end
|
55
55
|
end
|
@@ -424,13 +424,11 @@ module KineticSdk
|
|
424
424
|
# prepare the payload
|
425
425
|
payload = data.inject({}) do |h,(k,v)|
|
426
426
|
if v.class == File
|
427
|
-
h[k] = UploadIO.new(v, mimetype(v), File.basename(v))
|
427
|
+
h[k] = UploadIO.new(v, mimetype(v).first, File.basename(v))
|
428
428
|
elsif v.class == Array
|
429
|
-
# f = v.first
|
430
|
-
# h[k] = UploadIO.new(f, mimetype(f), File.basename(f)) unless f.nil?
|
431
429
|
h[k] = v.inject([]) do |files, part|
|
432
430
|
if part.class == File
|
433
|
-
files << UploadIO.new(part, mimetype(part), File.basename(part))
|
431
|
+
files << UploadIO.new(part, mimetype(part).first, File.basename(part))
|
434
432
|
end
|
435
433
|
end
|
436
434
|
else
|
@@ -634,9 +632,9 @@ module KineticSdk
|
|
634
632
|
# @option http_options [Fixnum] :max_redirects optional - max number of times to redirect
|
635
633
|
# @option http_options [Fixnum] :gateway_retry_limit optional - max number of times to retry a bad gateway
|
636
634
|
# @option http_options [Float] :gateway_retry_delay optional - number of seconds to delay before retrying a bad gateway
|
637
|
-
def stream_download_to_file(file_path, url, params={}, headers={}, http_options=@
|
635
|
+
def stream_download_to_file(file_path, url, params={}, headers={}, http_options=@options)
|
638
636
|
# Determine if redirection is involved
|
639
|
-
url = redirect_url(url, params, headers,
|
637
|
+
url = redirect_url(url, params, headers, http_options)
|
640
638
|
# parse the URL
|
641
639
|
uri = URI.parse(url)
|
642
640
|
|
@@ -645,15 +643,17 @@ module KineticSdk
|
|
645
643
|
# build the http object
|
646
644
|
http = build_http(uri)
|
647
645
|
|
648
|
-
#
|
649
|
-
file =
|
646
|
+
# prepare the download
|
647
|
+
file = nil
|
650
648
|
file_name = File.basename(file_path)
|
651
649
|
response_code = nil
|
652
650
|
message = nil
|
653
651
|
begin
|
652
|
+
# stream the attachment
|
654
653
|
http.request_get(uri.request_uri, headers) do |response|
|
655
654
|
response_code = response.code
|
656
655
|
if response_code == "200"
|
656
|
+
file = File.open(file_path, "wb")
|
657
657
|
response.read_body { |chunk| file.write(chunk) }
|
658
658
|
else
|
659
659
|
message = response.body
|
@@ -668,8 +668,9 @@ module KineticSdk
|
|
668
668
|
rescue StandardError => e
|
669
669
|
@logger.error("Failed to export file attachment \"#{file_name}\": (#{e})")
|
670
670
|
ensure
|
671
|
-
file.close()
|
671
|
+
file.close() unless file.nil?
|
672
672
|
end
|
673
|
+
message
|
673
674
|
end
|
674
675
|
|
675
676
|
|
data/lib/kinetic_sdk/version.rb
CHANGED
metadata
CHANGED
@@ -1,142 +1,142 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kinetic_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kinetic Data
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: slugify
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - '='
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: 1.0.7
|
19
|
-
name: slugify
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.0.7
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: multipart-post
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - '='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 2.0.0
|
33
|
-
name: multipart-post
|
34
|
-
prerelease: false
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: mime-types
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
45
|
- - '='
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: '3.1'
|
47
|
-
name: mime-types
|
48
|
-
prerelease: false
|
49
48
|
type: :runtime
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: parallel
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
59
|
- - '='
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: 1.12.1
|
61
|
-
name: parallel
|
62
|
-
prerelease: false
|
63
62
|
type: :runtime
|
63
|
+
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.12.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
+
name: ruby-progressbar
|
70
71
|
requirement: !ruby/object:Gem::Requirement
|
71
72
|
requirements:
|
72
73
|
- - '='
|
73
74
|
- !ruby/object:Gem::Version
|
74
75
|
version: 1.9.0
|
75
|
-
name: ruby-progressbar
|
76
|
-
prerelease: false
|
77
76
|
type: :runtime
|
77
|
+
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.9.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
+
name: kontena-websocket-client
|
84
85
|
requirement: !ruby/object:Gem::Requirement
|
85
86
|
requirements:
|
86
87
|
- - '='
|
87
88
|
- !ruby/object:Gem::Version
|
88
89
|
version: 0.1.1
|
89
|
-
name: kontena-websocket-client
|
90
|
-
prerelease: false
|
91
90
|
type: :development
|
91
|
+
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.1.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
+
name: bundler
|
98
99
|
requirement: !ruby/object:Gem::Requirement
|
99
100
|
requirements:
|
100
101
|
- - "~>"
|
101
102
|
- !ruby/object:Gem::Version
|
102
103
|
version: '1.17'
|
103
|
-
name: bundler
|
104
|
-
prerelease: false
|
105
104
|
type: :development
|
105
|
+
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.17'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
113
114
|
requirements:
|
114
115
|
- - "~>"
|
115
116
|
- !ruby/object:Gem::Version
|
116
117
|
version: 13.0.1
|
117
|
-
name: rake
|
118
|
-
prerelease: false
|
119
118
|
type: :development
|
119
|
+
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 13.0.1
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
+
name: yard
|
126
127
|
requirement: !ruby/object:Gem::Requirement
|
127
128
|
requirements:
|
128
129
|
- - "~>"
|
129
130
|
- !ruby/object:Gem::Version
|
130
131
|
version: 0.9.25
|
131
|
-
name: yard
|
132
|
-
prerelease: false
|
133
132
|
type: :development
|
133
|
+
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 0.9.25
|
139
|
-
description:
|
139
|
+
description:
|
140
140
|
email:
|
141
141
|
- support@kineticdata.com
|
142
142
|
executables:
|
@@ -408,7 +408,7 @@ homepage: https://github.com/kineticdata/kinetic-sdk-rb
|
|
408
408
|
licenses: []
|
409
409
|
metadata:
|
410
410
|
yard.run: yri
|
411
|
-
post_install_message:
|
411
|
+
post_install_message:
|
412
412
|
rdoc_options: []
|
413
413
|
require_paths:
|
414
414
|
- lib
|
@@ -423,9 +423,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
423
423
|
- !ruby/object:Gem::Version
|
424
424
|
version: '0'
|
425
425
|
requirements: []
|
426
|
-
|
427
|
-
|
428
|
-
signing_key:
|
426
|
+
rubygems_version: 3.0.3
|
427
|
+
signing_key:
|
429
428
|
specification_version: 4
|
430
429
|
summary: Ruby SDK for Kinetic Data application APIs
|
431
430
|
test_files: []
|