files.com 1.0.129 → 1.0.134

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08efe8dc2b98572f4da5009fcf5978026da9862c5daead1262b1050b3b8dfcae'
4
- data.tar.gz: 3355ed5a25ce05f6aef4d9cbbbc36994c4271df7c4926cf3af934615e16b717f
3
+ metadata.gz: d09ff92ef54d2ff2b07c7677e9998262d07534c2f1970fec953066b6c646f769
4
+ data.tar.gz: 11d4e18d9ab273f09c9170dd6e12dc8ca5b55c17914df0764681c884d6a3fbc1
5
5
  SHA512:
6
- metadata.gz: 66ee153609a3712ae973f6a8c92eb5d18c2a4ffbeaeb4a3d67e9a69c5fff395e3ca288d61d7f2dd66a17b40a934e0ebf0cdbc2395e74ba688c8c3bd355511a0d
7
- data.tar.gz: 6aafd77a290862c3b8e374f821858ff101e51e8510ef4ab2ecc8a51dc877b964167ad5903b93a60f770bed84aeb7149fa945656606ed8e03169a9a0fc9a54bd6
6
+ metadata.gz: 4f40491abab773ec451d0a880b4870a1bcb9796e4b5ee67c5fa2481cc0cfd10855c12d6bd460736541271b4a70300809caf10f4fb1d8f229236025a21ee0de6b
7
+ data.tar.gz: c0d39193c030c2004a0f2859142322ece43bec229aea4fcf6b47f05a998242aa055044ef78ded5da996e689f9c3f76e2459dbdb92f08fd39c93ee8025972e3e2
data/_VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.129
1
+ 1.0.134
@@ -35,13 +35,15 @@
35
35
  1,
36
36
  2
37
37
  ],
38
- "webhook_url": "https://app.files.com/api/webhooks/abc123"
38
+ "webhook_url": "https://app.files.com/api/webhooks/abc123",
39
+ "trigger_actions": "[ \"create\" ]",
40
+ "trigger_action_path": "path/to/file/or/folder"
39
41
  }
40
42
  ```
41
43
 
42
44
  * `id` (int64): Automation ID
43
45
  * `automation` (string): Automation type
44
- * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
46
+ * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
45
47
  * `interval` (string): If trigger is `daily`, this specifies how often to run this automation. One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`
46
48
  * `next_process_on` (string): If trigger is `daily`, date this automation will next run.
47
49
  * `schedule` (object): If trigger is `custom_schedule`, Custom schedule description for when the automation should be run.
@@ -54,6 +56,8 @@
54
56
  * `user_ids` (array): IDs of Users for the Automation (i.e. who to Request File from)
55
57
  * `group_ids` (array): IDs of Groups for the Automation (i.e. who to Request File from)
56
58
  * `webhook_url` (string): If trigger is `webhook`, this is the URL of the webhook to trigger the Automation.
59
+ * `trigger_actions` (string): If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
60
+ * `trigger_action_path` (string): If trigger is `action`, this is the path to watch for the specified trigger actions.
57
61
 
58
62
 
59
63
  ---
@@ -107,7 +111,9 @@ Files::Automation.create(
107
111
  user_ids: [1,2],
108
112
  group_ids: [1,2],
109
113
  schedule: "{\"days_of_week\": [ 0, 1, 3 ], \"times_of_day\": [ \"7:30\", \"11:30\" ], \"time_zone\": \"Eastern Time (US & Canada)\"}",
110
- trigger: "realtime"
114
+ trigger: "realtime",
115
+ trigger_actions: "[ \"create\" ]",
116
+ trigger_action_path: "path/to/file/or/folder"
111
117
  )
112
118
  ```
113
119
 
@@ -123,7 +129,9 @@ Files::Automation.create(
123
129
  * `user_ids` (string): A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
124
130
  * `group_ids` (string): A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
125
131
  * `schedule` (object): Custom schedule for running this automation.
126
- * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
132
+ * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
133
+ * `trigger_actions` (array(string)): If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
134
+ * `trigger_action_path` (string): If trigger is `action`, this is the path to watch for the specified trigger actions.
127
135
 
128
136
 
129
137
  ---
@@ -139,7 +147,9 @@ Files::Automation.update(id,
139
147
  user_ids: [1,2],
140
148
  group_ids: [1,2],
141
149
  schedule: "{\"days_of_week\": [ 0, 1, 3 ], \"times_of_day\": [ \"7:30\", \"11:30\" ], \"time_zone\": \"Eastern Time (US & Canada)\"}",
142
- trigger: "realtime"
150
+ trigger: "realtime",
151
+ trigger_actions: "[ \"create\" ]",
152
+ trigger_action_path: "path/to/file/or/folder"
143
153
  )
144
154
  ```
145
155
 
@@ -156,7 +166,9 @@ Files::Automation.update(id,
156
166
  * `user_ids` (string): A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
157
167
  * `group_ids` (string): A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
158
168
  * `schedule` (object): Custom schedule for running this automation.
159
- * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
169
+ * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
170
+ * `trigger_actions` (array(string)): If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
171
+ * `trigger_action_path` (string): If trigger is `action`, this is the path to watch for the specified trigger actions.
160
172
 
161
173
 
162
174
  ---
@@ -187,7 +199,9 @@ automation.update(
187
199
  user_ids: [1,2],
188
200
  group_ids: [1,2],
189
201
  schedule: "{\"days_of_week\": [ 0, 1, 3 ], \"times_of_day\": [ \"7:30\", \"11:30\" ], \"time_zone\": \"Eastern Time (US & Canada)\"}",
190
- trigger: "realtime"
202
+ trigger: "realtime",
203
+ trigger_actions: "[ \"create\" ]",
204
+ trigger_action_path: "path/to/file/or/folder"
191
205
  )
192
206
  ```
193
207
 
@@ -204,7 +218,9 @@ automation.update(
204
218
  * `user_ids` (string): A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
205
219
  * `group_ids` (string): A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
206
220
  * `schedule` (object): Custom schedule for running this automation.
207
- * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
221
+ * `trigger` (string): How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
222
+ * `trigger_actions` (array(string)): If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
223
+ * `trigger_action_path` (string): If trigger is `action`, this is the path to watch for the specified trigger actions.
208
224
 
209
225
 
210
226
  ---
@@ -17,6 +17,9 @@
17
17
  * `note` (string): A note sent to the recipient with the bundle.
18
18
  * `recipient` (string): The recipient's email address.
19
19
  * `sent_at` (date-time): When the Bundle was shared with this recipient.
20
+ * `user_id` (int64): User ID. Provide a value of `0` to operate the current session's user.
21
+ * `bundle_id` (int64): Bundle to share.
22
+ * `share_after_create` (boolean): Set to true to share the link with the recipient upon creation.
20
23
 
21
24
 
22
25
  ---
@@ -44,3 +47,30 @@ Files::BundleRecipient.list(
44
47
  * `filter_lt` (object): If set, return records where the specifiied field is less than the supplied value. Valid fields are `has_registrations`.
45
48
  * `filter_lteq` (object): If set, return records where the specifiied field is less than or equal to the supplied value. Valid fields are `has_registrations`.
46
49
  * `bundle_id` (int64): Required - List recipients for the bundle with this ID.
50
+
51
+
52
+ ---
53
+
54
+ ## Create Bundle Recipient
55
+
56
+ ```
57
+ Files::BundleRecipient.create(
58
+ user_id: 1,
59
+ bundle_id: 1,
60
+ recipient: "johndoe@gmail.com",
61
+ name: "John Smith",
62
+ company: "Acme Ltd",
63
+ note: "Just a note.",
64
+ share_after_create: true
65
+ )
66
+ ```
67
+
68
+ ### Parameters
69
+
70
+ * `user_id` (int64): User ID. Provide a value of `0` to operate the current session's user.
71
+ * `bundle_id` (int64): Required - Bundle to share.
72
+ * `recipient` (string): Required - Email addresses to share this bundle with.
73
+ * `name` (string): Name of recipient.
74
+ * `company` (string): Company of recipient.
75
+ * `note` (string): Note to include in email.
76
+ * `share_after_create` (boolean): Set to true to share the link with the recipient upon creation.
@@ -77,7 +77,7 @@ Files::FormFieldSet.find(id)
77
77
  Files::FormFieldSet.create(
78
78
  user_id: 1,
79
79
  title: "Sample Form Title",
80
- form_fields: [{"id":1,"label":"Sample Label","required":true,"help_text":"Help Text","field_type":"text","options_for_select":["red","green","blue"],"default_option":"red","form_field_set_id":1}]
80
+ form_fields: [{"label":"Sample Label","required":true,"help_text":"Help Text","field_type":"text","options_for_select":["red","green","blue"],"default_option":"red","form_field_set_id":1}]
81
81
  )
82
82
  ```
83
83
 
@@ -0,0 +1,76 @@
1
+ # InboxRecipient
2
+
3
+ ## Example InboxRecipient Object
4
+
5
+ ```
6
+ {
7
+ "company": "Acme Inc.",
8
+ "name": "John Doe",
9
+ "note": "Some note.",
10
+ "recipient": "john.doe@example.com",
11
+ "sent_at": "2000-01-01T01:00:00Z"
12
+ }
13
+ ```
14
+
15
+ * `company` (string): The recipient's company.
16
+ * `name` (string): The recipient's name.
17
+ * `note` (string): A note sent to the recipient with the inbox.
18
+ * `recipient` (string): The recipient's email address.
19
+ * `sent_at` (date-time): When the Inbox was shared with this recipient.
20
+ * `user_id` (int64): User ID. Provide a value of `0` to operate the current session's user.
21
+ * `inbox_id` (int64): Inbox to share.
22
+ * `share_after_create` (boolean): Set to true to share the link with the recipient upon creation.
23
+
24
+
25
+ ---
26
+
27
+ ## List Inbox Recipients
28
+
29
+ ```
30
+ Files::InboxRecipient.list(
31
+ user_id: 1,
32
+ per_page: 1,
33
+ inbox_id: 1
34
+ )
35
+ ```
36
+
37
+ ### Parameters
38
+
39
+ * `user_id` (int64): User ID. Provide a value of `0` to operate the current session's user.
40
+ * `cursor` (string): Used for pagination. Send a cursor value to resume an existing list from the point at which you left off. Get a cursor from an existing list via the X-Files-Cursor-Next header.
41
+ * `per_page` (int64): Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
42
+ * `sort_by` (object): If set, sort records by the specified field in either 'asc' or 'desc' direction (e.g. sort_by[last_login_at]=desc). Valid fields are `has_registrations`.
43
+ * `filter` (object): If set, return records where the specifiied field is equal to the supplied value. Valid fields are `has_registrations`.
44
+ * `filter_gt` (object): If set, return records where the specifiied field is greater than the supplied value. Valid fields are `has_registrations`.
45
+ * `filter_gteq` (object): If set, return records where the specifiied field is greater than or equal to the supplied value. Valid fields are `has_registrations`.
46
+ * `filter_like` (object): If set, return records where the specifiied field is equal to the supplied value. Valid fields are `has_registrations`.
47
+ * `filter_lt` (object): If set, return records where the specifiied field is less than the supplied value. Valid fields are `has_registrations`.
48
+ * `filter_lteq` (object): If set, return records where the specifiied field is less than or equal to the supplied value. Valid fields are `has_registrations`.
49
+ * `inbox_id` (int64): Required - List recipients for the inbox with this ID.
50
+
51
+
52
+ ---
53
+
54
+ ## Create Inbox Recipient
55
+
56
+ ```
57
+ Files::InboxRecipient.create(
58
+ user_id: 1,
59
+ inbox_id: 1,
60
+ recipient: "johndoe@gmail.com",
61
+ name: "John Smith",
62
+ company: "Acme Ltd",
63
+ note: "Just a note.",
64
+ share_after_create: true
65
+ )
66
+ ```
67
+
68
+ ### Parameters
69
+
70
+ * `user_id` (int64): User ID. Provide a value of `0` to operate the current session's user.
71
+ * `inbox_id` (int64): Required - Inbox to share.
72
+ * `recipient` (string): Required - Email addresses to share this inbox with.
73
+ * `name` (string): Name of recipient.
74
+ * `company` (string): Company of recipient.
75
+ * `note` (string): Note to include in email.
76
+ * `share_after_create` (boolean): Set to true to share the link with the recipient upon creation.
@@ -17,12 +17,16 @@
17
17
 
18
18
  ]
19
19
  }
20
- ]
20
+ ],
21
+ "clickwrap_id": 1,
22
+ "clickwrap_body": ""
21
23
  }
22
24
  ```
23
25
 
24
- * `code` (int64): Status http code
26
+ * `code` (int64): Status HTTP code
25
27
  * `message` (string): Error message
26
28
  * `status` (string): Status message
27
29
  * `data`: Additional data
28
30
  * `errors` (array): A list of api errors
31
+ * `clickwrap_id` (int64): Required Clickwrap id
32
+ * `clickwrap_body` (string): Required Clickwrap body
@@ -58,6 +58,7 @@ require "files.com/models/history"
58
58
  require "files.com/models/history_export"
59
59
  require "files.com/models/history_export_result"
60
60
  require "files.com/models/image"
61
+ require "files.com/models/inbox_recipient"
61
62
  require "files.com/models/inbox_registration"
62
63
  require "files.com/models/inbox_upload"
63
64
  require "files.com/models/invoice"
@@ -154,7 +154,7 @@ module Files
154
154
  http.request request do |response|
155
155
  io.fulfill_content_length(response.content_length) if io.respond_to?(:fulfill_content_length)
156
156
  response.read_body do |chunk|
157
- io << chunk.encode!
157
+ io << chunk
158
158
  end
159
159
  end
160
160
  end
@@ -27,7 +27,7 @@ module Files
27
27
  @attributes[:automation] = value
28
28
  end
29
29
 
30
- # string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
30
+ # string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
31
31
  def trigger
32
32
  @attributes[:trigger]
33
33
  end
@@ -144,6 +144,24 @@ module Files
144
144
  @attributes[:webhook_url] = value
145
145
  end
146
146
 
147
+ # string - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
148
+ def trigger_actions
149
+ @attributes[:trigger_actions]
150
+ end
151
+
152
+ def trigger_actions=(value)
153
+ @attributes[:trigger_actions] = value
154
+ end
155
+
156
+ # string - If trigger is `action`, this is the path to watch for the specified trigger actions.
157
+ def trigger_action_path
158
+ @attributes[:trigger_action_path]
159
+ end
160
+
161
+ def trigger_action_path=(value)
162
+ @attributes[:trigger_action_path] = value
163
+ end
164
+
147
165
  # Parameters:
148
166
  # automation (required) - string - Automation type
149
167
  # source - string - Source Path
@@ -155,7 +173,9 @@ module Files
155
173
  # user_ids - string - A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
156
174
  # group_ids - string - A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
157
175
  # schedule - object - Custom schedule for running this automation.
158
- # trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
176
+ # trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
177
+ # trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
178
+ # trigger_action_path - string - If trigger is `action`, this is the path to watch for the specified trigger actions.
159
179
  def update(params = {})
160
180
  params ||= {}
161
181
  params[:id] = @attributes[:id]
@@ -171,6 +191,8 @@ module Files
171
191
  raise InvalidParameterError.new("Bad parameter: user_ids must be an String") if params.dig(:user_ids) and !params.dig(:user_ids).is_a?(String)
172
192
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
173
193
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params.dig(:trigger) and !params.dig(:trigger).is_a?(String)
194
+ raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params.dig(:trigger_actions) and !params.dig(:trigger_actions).is_a?(Array)
195
+ raise InvalidParameterError.new("Bad parameter: trigger_action_path must be an String") if params.dig(:trigger_action_path) and !params.dig(:trigger_action_path).is_a?(String)
174
196
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
175
197
  raise MissingParameterError.new("Parameter missing: automation") unless params.dig(:automation)
176
198
 
@@ -259,7 +281,9 @@ module Files
259
281
  # user_ids - string - A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
260
282
  # group_ids - string - A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
261
283
  # schedule - object - Custom schedule for running this automation.
262
- # trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
284
+ # trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
285
+ # trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
286
+ # trigger_action_path - string - If trigger is `action`, this is the path to watch for the specified trigger actions.
263
287
  def self.create(params = {}, options = {})
264
288
  raise InvalidParameterError.new("Bad parameter: automation must be an String") if params.dig(:automation) and !params.dig(:automation).is_a?(String)
265
289
  raise InvalidParameterError.new("Bad parameter: source must be an String") if params.dig(:source) and !params.dig(:source).is_a?(String)
@@ -272,6 +296,8 @@ module Files
272
296
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
273
297
  raise InvalidParameterError.new("Bad parameter: schedule must be an Hash") if params.dig(:schedule) and !params.dig(:schedule).is_a?(Hash)
274
298
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params.dig(:trigger) and !params.dig(:trigger).is_a?(String)
299
+ raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params.dig(:trigger_actions) and !params.dig(:trigger_actions).is_a?(Array)
300
+ raise InvalidParameterError.new("Bad parameter: trigger_action_path must be an String") if params.dig(:trigger_action_path) and !params.dig(:trigger_action_path).is_a?(String)
275
301
  raise MissingParameterError.new("Parameter missing: automation") unless params.dig(:automation)
276
302
 
277
303
  response, options = Api.send_request("/automations", :post, params, options)
@@ -289,7 +315,9 @@ module Files
289
315
  # user_ids - string - A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
290
316
  # group_ids - string - A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
291
317
  # schedule - object - Custom schedule for running this automation.
292
- # trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, or `email`.
318
+ # trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
319
+ # trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
320
+ # trigger_action_path - string - If trigger is `action`, this is the path to watch for the specified trigger actions.
293
321
  def self.update(id, params = {}, options = {})
294
322
  params ||= {}
295
323
  params[:id] = id
@@ -305,6 +333,8 @@ module Files
305
333
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
306
334
  raise InvalidParameterError.new("Bad parameter: schedule must be an Hash") if params.dig(:schedule) and !params.dig(:schedule).is_a?(Hash)
307
335
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params.dig(:trigger) and !params.dig(:trigger).is_a?(String)
336
+ raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params.dig(:trigger_actions) and !params.dig(:trigger_actions).is_a?(Array)
337
+ raise InvalidParameterError.new("Bad parameter: trigger_action_path must be an String") if params.dig(:trigger_action_path) and !params.dig(:trigger_action_path).is_a?(String)
308
338
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
309
339
  raise MissingParameterError.new("Parameter missing: automation") unless params.dig(:automation)
310
340
 
@@ -14,26 +14,82 @@ module Files
14
14
  @attributes[:company]
15
15
  end
16
16
 
17
+ def company=(value)
18
+ @attributes[:company] = value
19
+ end
20
+
17
21
  # string - The recipient's name.
18
22
  def name
19
23
  @attributes[:name]
20
24
  end
21
25
 
26
+ def name=(value)
27
+ @attributes[:name] = value
28
+ end
29
+
22
30
  # string - A note sent to the recipient with the bundle.
23
31
  def note
24
32
  @attributes[:note]
25
33
  end
26
34
 
35
+ def note=(value)
36
+ @attributes[:note] = value
37
+ end
38
+
27
39
  # string - The recipient's email address.
28
40
  def recipient
29
41
  @attributes[:recipient]
30
42
  end
31
43
 
44
+ def recipient=(value)
45
+ @attributes[:recipient] = value
46
+ end
47
+
32
48
  # date-time - When the Bundle was shared with this recipient.
33
49
  def sent_at
34
50
  @attributes[:sent_at]
35
51
  end
36
52
 
53
+ def sent_at=(value)
54
+ @attributes[:sent_at] = value
55
+ end
56
+
57
+ # int64 - User ID. Provide a value of `0` to operate the current session's user.
58
+ def user_id
59
+ @attributes[:user_id]
60
+ end
61
+
62
+ def user_id=(value)
63
+ @attributes[:user_id] = value
64
+ end
65
+
66
+ # int64 - Bundle to share.
67
+ def bundle_id
68
+ @attributes[:bundle_id]
69
+ end
70
+
71
+ def bundle_id=(value)
72
+ @attributes[:bundle_id] = value
73
+ end
74
+
75
+ # boolean - Set to true to share the link with the recipient upon creation.
76
+ def share_after_create
77
+ @attributes[:share_after_create]
78
+ end
79
+
80
+ def share_after_create=(value)
81
+ @attributes[:share_after_create] = value
82
+ end
83
+
84
+ def save
85
+ if @attributes[:id]
86
+ raise NotImplementedError.new("The BundleRecipient object doesn't support updates.")
87
+ else
88
+ new_obj = BundleRecipient.create(@attributes, @options)
89
+ @attributes = new_obj.attributes
90
+ end
91
+ end
92
+
37
93
  # Parameters:
38
94
  # user_id - int64 - User ID. Provide a value of `0` to operate the current session's user.
39
95
  # cursor - string - Used for pagination. Send a cursor value to resume an existing list from the point at which you left off. Get a cursor from an existing list via the X-Files-Cursor-Next header.
@@ -68,5 +124,27 @@ module Files
68
124
  def self.all(params = {}, options = {})
69
125
  list(params, options)
70
126
  end
127
+
128
+ # Parameters:
129
+ # user_id - int64 - User ID. Provide a value of `0` to operate the current session's user.
130
+ # bundle_id (required) - int64 - Bundle to share.
131
+ # recipient (required) - string - Email addresses to share this bundle with.
132
+ # name - string - Name of recipient.
133
+ # company - string - Company of recipient.
134
+ # note - string - Note to include in email.
135
+ # share_after_create - boolean - Set to true to share the link with the recipient upon creation.
136
+ def self.create(params = {}, options = {})
137
+ raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params.dig(:user_id) and !params.dig(:user_id).is_a?(Integer)
138
+ raise InvalidParameterError.new("Bad parameter: bundle_id must be an Integer") if params.dig(:bundle_id) and !params.dig(:bundle_id).is_a?(Integer)
139
+ raise InvalidParameterError.new("Bad parameter: recipient must be an String") if params.dig(:recipient) and !params.dig(:recipient).is_a?(String)
140
+ raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
141
+ raise InvalidParameterError.new("Bad parameter: company must be an String") if params.dig(:company) and !params.dig(:company).is_a?(String)
142
+ raise InvalidParameterError.new("Bad parameter: note must be an String") if params.dig(:note) and !params.dig(:note).is_a?(String)
143
+ raise MissingParameterError.new("Parameter missing: bundle_id") unless params.dig(:bundle_id)
144
+ raise MissingParameterError.new("Parameter missing: recipient") unless params.dig(:recipient)
145
+
146
+ response, options = Api.send_request("/bundle_recipients", :post, params, options)
147
+ BundleRecipient.new(response.data, options)
148
+ end
71
149
  end
72
150
  end
@@ -0,0 +1,150 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Files
4
+ class InboxRecipient
5
+ attr_reader :options, :attributes
6
+
7
+ def initialize(attributes = {}, options = {})
8
+ @attributes = attributes || {}
9
+ @options = options || {}
10
+ end
11
+
12
+ # string - The recipient's company.
13
+ def company
14
+ @attributes[:company]
15
+ end
16
+
17
+ def company=(value)
18
+ @attributes[:company] = value
19
+ end
20
+
21
+ # string - The recipient's name.
22
+ def name
23
+ @attributes[:name]
24
+ end
25
+
26
+ def name=(value)
27
+ @attributes[:name] = value
28
+ end
29
+
30
+ # string - A note sent to the recipient with the inbox.
31
+ def note
32
+ @attributes[:note]
33
+ end
34
+
35
+ def note=(value)
36
+ @attributes[:note] = value
37
+ end
38
+
39
+ # string - The recipient's email address.
40
+ def recipient
41
+ @attributes[:recipient]
42
+ end
43
+
44
+ def recipient=(value)
45
+ @attributes[:recipient] = value
46
+ end
47
+
48
+ # date-time - When the Inbox was shared with this recipient.
49
+ def sent_at
50
+ @attributes[:sent_at]
51
+ end
52
+
53
+ def sent_at=(value)
54
+ @attributes[:sent_at] = value
55
+ end
56
+
57
+ # int64 - User ID. Provide a value of `0` to operate the current session's user.
58
+ def user_id
59
+ @attributes[:user_id]
60
+ end
61
+
62
+ def user_id=(value)
63
+ @attributes[:user_id] = value
64
+ end
65
+
66
+ # int64 - Inbox to share.
67
+ def inbox_id
68
+ @attributes[:inbox_id]
69
+ end
70
+
71
+ def inbox_id=(value)
72
+ @attributes[:inbox_id] = value
73
+ end
74
+
75
+ # boolean - Set to true to share the link with the recipient upon creation.
76
+ def share_after_create
77
+ @attributes[:share_after_create]
78
+ end
79
+
80
+ def share_after_create=(value)
81
+ @attributes[:share_after_create] = value
82
+ end
83
+
84
+ def save
85
+ if @attributes[:id]
86
+ raise NotImplementedError.new("The InboxRecipient object doesn't support updates.")
87
+ else
88
+ new_obj = InboxRecipient.create(@attributes, @options)
89
+ @attributes = new_obj.attributes
90
+ end
91
+ end
92
+
93
+ # Parameters:
94
+ # user_id - int64 - User ID. Provide a value of `0` to operate the current session's user.
95
+ # cursor - string - Used for pagination. Send a cursor value to resume an existing list from the point at which you left off. Get a cursor from an existing list via the X-Files-Cursor-Next header.
96
+ # per_page - int64 - Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
97
+ # sort_by - object - If set, sort records by the specified field in either 'asc' or 'desc' direction (e.g. sort_by[last_login_at]=desc). Valid fields are `has_registrations`.
98
+ # filter - object - If set, return records where the specifiied field is equal to the supplied value. Valid fields are `has_registrations`.
99
+ # filter_gt - object - If set, return records where the specifiied field is greater than the supplied value. Valid fields are `has_registrations`.
100
+ # filter_gteq - object - If set, return records where the specifiied field is greater than or equal to the supplied value. Valid fields are `has_registrations`.
101
+ # filter_like - object - If set, return records where the specifiied field is equal to the supplied value. Valid fields are `has_registrations`.
102
+ # filter_lt - object - If set, return records where the specifiied field is less than the supplied value. Valid fields are `has_registrations`.
103
+ # filter_lteq - object - If set, return records where the specifiied field is less than or equal to the supplied value. Valid fields are `has_registrations`.
104
+ # inbox_id (required) - int64 - List recipients for the inbox with this ID.
105
+ def self.list(params = {}, options = {})
106
+ raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params.dig(:user_id) and !params.dig(:user_id).is_a?(Integer)
107
+ raise InvalidParameterError.new("Bad parameter: cursor must be an String") if params.dig(:cursor) and !params.dig(:cursor).is_a?(String)
108
+ raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params.dig(:per_page) and !params.dig(:per_page).is_a?(Integer)
109
+ raise InvalidParameterError.new("Bad parameter: sort_by must be an Hash") if params.dig(:sort_by) and !params.dig(:sort_by).is_a?(Hash)
110
+ raise InvalidParameterError.new("Bad parameter: filter must be an Hash") if params.dig(:filter) and !params.dig(:filter).is_a?(Hash)
111
+ raise InvalidParameterError.new("Bad parameter: filter_gt must be an Hash") if params.dig(:filter_gt) and !params.dig(:filter_gt).is_a?(Hash)
112
+ raise InvalidParameterError.new("Bad parameter: filter_gteq must be an Hash") if params.dig(:filter_gteq) and !params.dig(:filter_gteq).is_a?(Hash)
113
+ raise InvalidParameterError.new("Bad parameter: filter_like must be an Hash") if params.dig(:filter_like) and !params.dig(:filter_like).is_a?(Hash)
114
+ raise InvalidParameterError.new("Bad parameter: filter_lt must be an Hash") if params.dig(:filter_lt) and !params.dig(:filter_lt).is_a?(Hash)
115
+ raise InvalidParameterError.new("Bad parameter: filter_lteq must be an Hash") if params.dig(:filter_lteq) and !params.dig(:filter_lteq).is_a?(Hash)
116
+ raise InvalidParameterError.new("Bad parameter: inbox_id must be an Integer") if params.dig(:inbox_id) and !params.dig(:inbox_id).is_a?(Integer)
117
+ raise MissingParameterError.new("Parameter missing: inbox_id") unless params.dig(:inbox_id)
118
+
119
+ List.new(InboxRecipient, params) do
120
+ Api.send_request("/inbox_recipients", :get, params, options)
121
+ end
122
+ end
123
+
124
+ def self.all(params = {}, options = {})
125
+ list(params, options)
126
+ end
127
+
128
+ # Parameters:
129
+ # user_id - int64 - User ID. Provide a value of `0` to operate the current session's user.
130
+ # inbox_id (required) - int64 - Inbox to share.
131
+ # recipient (required) - string - Email addresses to share this inbox with.
132
+ # name - string - Name of recipient.
133
+ # company - string - Company of recipient.
134
+ # note - string - Note to include in email.
135
+ # share_after_create - boolean - Set to true to share the link with the recipient upon creation.
136
+ def self.create(params = {}, options = {})
137
+ raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params.dig(:user_id) and !params.dig(:user_id).is_a?(Integer)
138
+ raise InvalidParameterError.new("Bad parameter: inbox_id must be an Integer") if params.dig(:inbox_id) and !params.dig(:inbox_id).is_a?(Integer)
139
+ raise InvalidParameterError.new("Bad parameter: recipient must be an String") if params.dig(:recipient) and !params.dig(:recipient).is_a?(String)
140
+ raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
141
+ raise InvalidParameterError.new("Bad parameter: company must be an String") if params.dig(:company) and !params.dig(:company).is_a?(String)
142
+ raise InvalidParameterError.new("Bad parameter: note must be an String") if params.dig(:note) and !params.dig(:note).is_a?(String)
143
+ raise MissingParameterError.new("Parameter missing: inbox_id") unless params.dig(:inbox_id)
144
+ raise MissingParameterError.new("Parameter missing: recipient") unless params.dig(:recipient)
145
+
146
+ response, options = Api.send_request("/inbox_recipients", :post, params, options)
147
+ InboxRecipient.new(response.data, options)
148
+ end
149
+ end
150
+ end
@@ -9,7 +9,7 @@ module Files
9
9
  @options = options || {}
10
10
  end
11
11
 
12
- # int64 - Status http code
12
+ # int64 - Status HTTP code
13
13
  def code
14
14
  @attributes[:code]
15
15
  end
@@ -33,5 +33,15 @@ module Files
33
33
  def errors
34
34
  @attributes[:errors]
35
35
  end
36
+
37
+ # int64 - Required Clickwrap id
38
+ def clickwrap_id
39
+ @attributes[:clickwrap_id]
40
+ end
41
+
42
+ # string - Required Clickwrap body
43
+ def clickwrap_body
44
+ @attributes[:clickwrap_body]
45
+ end
36
46
  end
37
47
  end
@@ -34,17 +34,11 @@ module Files
34
34
  # here we need to, so switch to ASCII.
35
35
  component = component.dup
36
36
  component.force_encoding(Encoding::ASCII_8BIT)
37
- unencoded = Addressable::URI.unencode_component(component, String, leave_encoded)
38
- begin
39
- encoded = Addressable::URI.encode_component(
40
- # Addressable::IDNA.unicode_normalize_kc(unencoded),
41
- unencoded,
42
- character_class,
43
- leave_encoded
44
- )
45
- rescue ArgumentError
46
- encoded = encode_component(unencoded)
47
- end
37
+ encoded = Addressable::URI.encode_component(
38
+ component,
39
+ character_class,
40
+ leave_encoded
41
+ )
48
42
  encoded.force_encoding(Encoding::UTF_8)
49
43
  encoded
50
44
  end
@@ -2,10 +2,14 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe Files::URI do
4
4
  describe "normalized_path" do
5
- it { expect(described_class.normalized_path("[[strange stuff]]#yes.text")).to eq("%5B%5Bstrange%20stuff%5D%5D%23yes.text") }
5
+ it { expect(described_class.normalized_path("path/[[strange stuff]]#yes.text")).to eq("path/%5B%5Bstrange%20stuff%5D%5D%23yes.text") }
6
6
  it { expect(Addressable::URI.unencode_component(described_class.normalized_path("[[strange stuff]]#yes.text"))).to eq("[[strange stuff]]#yes.text") }
7
7
 
8
8
  it { expect(described_class.normalized_path("folder/AdÇe")).to eq("folder/AdC%CC%A7e") }
9
9
  it { expect(Addressable::URI.unencode_component(described_class.normalized_path("AdÇe"))).to eq("AdÇe") }
10
+
11
+ it { expect(described_class.normalized_path("lorem%20ipsum.txt")).to eq("lorem%2520ipsum.txt") }
12
+ it { expect(described_class.normalized_path("lorem%ipsum.txt")).to eq("lorem%25ipsum.txt") }
13
+ it { expect(described_class.normalized_path("lorem ipsum.txt")).to eq("lorem%20ipsum.txt") }
10
14
  end
11
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: files.com
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.129
4
+ version: 1.0.134
5
5
  platform: ruby
6
6
  authors:
7
7
  - files.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-07 00:00:00.000000000 Z
11
+ date: 2021-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -117,6 +117,7 @@ files:
117
117
  - docs/history_export.md
118
118
  - docs/history_export_result.md
119
119
  - docs/image.md
120
+ - docs/inbox_recipient.md
120
121
  - docs/inbox_registration.md
121
122
  - docs/inbox_upload.md
122
123
  - docs/invoice.md
@@ -187,6 +188,7 @@ files:
187
188
  - lib/files.com/models/history_export.rb
188
189
  - lib/files.com/models/history_export_result.rb
189
190
  - lib/files.com/models/image.rb
191
+ - lib/files.com/models/inbox_recipient.rb
190
192
  - lib/files.com/models/inbox_registration.rb
191
193
  - lib/files.com/models/inbox_upload.rb
192
194
  - lib/files.com/models/invoice.rb