boxr 0.31.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8682c0e2402a646cae436c2d103074312f84e656
4
- data.tar.gz: 9ab29d7ccf6b4c1b93816527515bfa0859898f2a
3
+ metadata.gz: 517251718a2a480a9558ec592e3a05fe77a0a176
4
+ data.tar.gz: bd500f4b3fbcbc8067dba9f177e4ed59dc8fb65e
5
5
  SHA512:
6
- metadata.gz: 38f3c5d4aa1b0c98b4c33193318d3ab975e61a2f6a6ac11d634a39050f9ebdb048009c01270261d00c0e2ab6952b99bd610264c9edd60e1a4217d5132a6368a0
7
- data.tar.gz: 0eb2bcac3782982da752cefa205befb4e14c61ecf6db4c750c82c36573b784631079c92abf000e381fe462263864616c78961d59816235b9feb73ca5ef0aa035
6
+ metadata.gz: ba654518f7ec93a4635903d5eea630aa35a55614f17dfbac74a41b71cf5d83ec2193b5b1d19fb892e1d80662bb89032533375201d2830127867372152585e14c
7
+ data.tar.gz: 00bf893d13ca76a97bad47fb23283468fcdfefe416f2443a6ce08257c9d7c8cedc5fab4d85d23896303b451a991d6636074f18418e43d1572305608c05a0630a
data/README.md CHANGED
@@ -172,6 +172,11 @@ file_from_path(path)
172
172
  file_from_id(file_id, fields: [])
173
173
  alias :file :file_from_id
174
174
 
175
+ embed_url(file)
176
+ alias :embed_link :embed_url
177
+ alias :preview_url :embed_url
178
+ alias :preview_link :embed_url
179
+
175
180
  update_file(file, name: nil, description: nil, parent: nil, shared_link: nil, tags: nil, if_match: nil)
176
181
 
177
182
  lock_file(file, expires_at: nil, is_download_prevented: false, if_match: nil)
@@ -200,9 +205,6 @@ delete_old_version_of_file(file, file_version, if_match: nil)
200
205
 
201
206
  copy_file(file, parent, name: nil)
202
207
 
203
- embed_url(file, version: nil, disable_download: nil)
204
- alias :preview_url :embed_url
205
-
206
208
  thumbnail(file, min_height: nil, min_width: nil, max_height: nil, max_width: nil)
207
209
 
208
210
  create_shared_link_for_file(file, access: nil, unshared_at: nil, can_download: nil, can_preview: nil)
@@ -259,9 +261,12 @@ shared_item(shared_link, shared_link_password: nil)
259
261
  ```
260
262
  #### [Search](https://developers.box.com/docs/#search)
261
263
  ```ruby
262
- search(query, scope: nil, file_extensions: nil, created_at_range: nil, updated_at_range: nil, size_range: nil,
263
- owner_user_ids: nil, ancestor_folder_ids: nil, content_types: nil, type: nil,
264
- limit: 30, offset: 0)
264
+ search( query=nil, scope: nil, file_extensions: [],
265
+ created_at_range_from_date: nil, created_at_range_to_date: nil,
266
+ updated_at_range_from_date: nil, updated_at_range_to_date: nil,
267
+ size_range_lower_bound_bytes: nil, size_range_upper_bound_bytes: nil,
268
+ owner_user_ids: [], ancestor_folder_ids: [], content_types: [], trash_content: nil,
269
+ mdfilters: nil, type: nil, limit: 30, offset: 0)
265
270
  ```
266
271
  #### [Users](https://developers.box.com/docs/#users)
267
272
  ```ruby
@@ -349,9 +354,15 @@ create_metadata(file, metadata, scope: :global, template: :properties)
349
354
 
350
355
  metadata(file, scope: :global, template: :properties)
351
356
 
357
+ all_metadata(file)
358
+
352
359
  update_metadata(file, updates, scope: :global, template: :properties)
353
360
 
354
361
  delete_metadata(file, scope: :global, template: :properties)
362
+
363
+ enterprise_metadata
364
+
365
+ metadata_schema(scope, template_key)
355
366
  ```
356
367
  ## Contributing
357
368
 
@@ -23,8 +23,10 @@ module Boxr
23
23
  TASK_ASSIGNMENTS_URI = "#{API_URI}/task_assignments"
24
24
  SHARED_ITEMS_URI = "#{API_URI}/shared_items"
25
25
  METADATA_URI = "#{API_URI}/files"
26
+ METADATA_TEMPLATES_URI = "#{API_URI}/metadata_templates"
26
27
  EVENTS_URI = "#{API_URI}/events"
27
28
 
29
+
28
30
  DEFAULT_LIMIT = 100
29
31
  FOLDER_ITEMS_LIMIT = 1000
30
32
 
@@ -251,6 +253,22 @@ module Boxr
251
253
  end
252
254
  end
253
255
 
256
+ def to_comma_separated_string(values)
257
+ return values if values.is_a?(String) || values.is_a?(Symbol)
258
+
259
+ if values.is_a?(Array) && values.length > 0
260
+ values.join(',')
261
+ else
262
+ nil
263
+ end
264
+ end
265
+
266
+ def build_range_string(from, to)
267
+ range_string = "#{from},#{to}"
268
+ range_string = nil if range_string == ","
269
+ range_string
270
+ end
271
+
254
272
  def ensure_id(item)
255
273
  return item if item.class == String || item.class == Fixnum || item.nil?
256
274
  return item.id if item.respond_to?(:id)
@@ -15,6 +15,13 @@ module Boxr
15
15
  metadata
16
16
  end
17
17
 
18
+ def all_metadata(file)
19
+ file_id = ensure_id(file)
20
+ uri = "#{METADATA_URI}/#{file_id}/metadata"
21
+ all_metadata, response = get(uri)
22
+ all_metadata
23
+ end
24
+
18
25
  def update_metadata(file, updates, scope: :global, template: :properties)
19
26
  file_id = ensure_id(file)
20
27
  uri = "#{METADATA_URI}/#{file_id}/metadata/#{scope}/#{template}"
@@ -33,5 +40,17 @@ module Boxr
33
40
  result
34
41
  end
35
42
 
43
+ def enterprise_metadata
44
+ uri = "#{METADATA_TEMPLATES_URI}/enterprise"
45
+ ent_metadata, response = get(uri)
46
+ ent_metadata
47
+ end
48
+
49
+ def metadata_schema(scope, template_key)
50
+ uri = "#{METADATA_TEMPLATES_URI}/#{scope}/#{template_key}/schema"
51
+ schema, response = get(uri)
52
+ schema
53
+ end
54
+
36
55
  end
37
56
  end
@@ -1,26 +1,67 @@
1
1
  module Boxr
2
2
  class Client
3
3
 
4
- def search(query, scope: nil, file_extensions: nil, created_at_range: nil, updated_at_range: nil, size_range: nil,
5
- owner_user_ids: nil, ancestor_folder_ids: nil, content_types: nil, type: nil,
6
- limit: 30, offset: 0)
7
-
8
- query = {query: query}
9
- query[:scope] = scope unless scope.nil?
10
- query[:file_extensions] = file_extensions unless file_extensions.nil?
11
- query[:created_at_range] = created_at_range unless created_at_range.nil?
12
- query[:updated_at_range] = updated_at_range unless updated_at_range.nil?
13
- query[:size_range] = size_range unless size_range.nil?
14
- query[:owner_user_ids] = owner_user_ids unless owner_user_ids.nil?
15
- query[:ancestor_folder_ids] = ancestor_folder_ids unless ancestor_folder_ids.nil?
16
- query[:content_types] = content_types unless content_types.nil?
17
- query[:type] = type unless type.nil?
18
- query[:limit] = limit unless limit.nil?
19
- query[:offset] = offset unless offset.nil?
20
-
21
- results, response = get(SEARCH_URI, query: query)
4
+ def search( query=nil, scope: nil, file_extensions: [],
5
+ created_at_range_from_date: nil, created_at_range_to_date: nil,
6
+ updated_at_range_from_date: nil, updated_at_range_to_date: nil,
7
+ size_range_lower_bound_bytes: nil, size_range_upper_bound_bytes: nil,
8
+ owner_user_ids: [], ancestor_folder_ids: [], content_types: [], trash_content: nil,
9
+ mdfilters: nil, type: nil, limit: 30, offset: 0)
10
+
11
+
12
+ unless mdfilters.nil?
13
+ unless mdfilters.is_a? String #if a string is passed in assume it is already formatted correctly
14
+ unless mdfilters.is_a? Array
15
+ mdfilters = [mdfilters] #if just one mdfilter is specified ensure that it is packaged inside an array
16
+ end
17
+ mdfilters = Oj.dump(mdfilters)
18
+ end
19
+ end
20
+
21
+ #build range strings
22
+ created_at_range_string = build_date_range_field(created_at_range_from_date, created_at_range_to_date)
23
+ updated_at_range_string = build_date_range_field(updated_at_range_from_date, updated_at_range_to_date)
24
+ size_range_string = build_size_range_field(size_range_lower_bound_bytes, size_range_upper_bound_bytes)
25
+
26
+ #build comma separated strings
27
+ file_extensions_string = to_comma_separated_string(file_extensions)
28
+ owner_user_ids_string = to_comma_separated_string(owner_user_ids)
29
+ ancestor_folder_ids_string = to_comma_separated_string(ancestor_folder_ids)
30
+ content_types_string = to_comma_separated_string(content_types)
31
+
32
+ search_query = {}
33
+ search_query[:query] = query unless query.nil?
34
+ search_query[:scope] = scope unless scope.nil?
35
+ search_query[:file_extensions] = file_extensions_string unless file_extensions_string.nil?
36
+ search_query[:created_at_range] = created_at_range_string unless created_at_range_string.nil?
37
+ search_query[:updated_at_range] = updated_at_range_string unless updated_at_range_string.nil?
38
+ search_query[:size_range] = size_range_string unless size_range_string.nil?
39
+ search_query[:owner_user_ids] = owner_user_ids_string unless owner_user_ids_string.nil?
40
+ search_query[:ancestor_folder_ids] = ancestor_folder_ids_string unless ancestor_folder_ids_string.nil?
41
+ search_query[:content_types] = content_types_string unless content_types_string.nil?
42
+ search_query[:trash_content] = trash_content unless trash_content.nil?
43
+ search_query[:mdfilters] = mdfilters unless mdfilters.nil?
44
+ search_query[:type] = type unless type.nil?
45
+ search_query[:limit] = limit unless limit.nil?
46
+ search_query[:offset] = offset unless offset.nil?
47
+
48
+ results, response = get(SEARCH_URI, query: search_query)
22
49
  results.entries
23
50
  end
24
51
 
52
+ private
53
+
54
+ def build_date_range_field(from, to)
55
+ from_string = from.nil? ? "" : from.to_datetime.rfc3339
56
+ to_string = to.nil? ? "" : to.to_datetime.rfc3339
57
+ build_range_string(from_string, to_string)
58
+ end
59
+
60
+ def build_size_range_field(lower, upper)
61
+ lower_string = lower.nil? ? "" : lower.to_i
62
+ upper_string = upper.nil? ? "" : upper.to_i
63
+ build_range_string(lower_string, upper_string)
64
+ end
65
+
25
66
  end
26
67
  end
@@ -1,3 +1,3 @@
1
1
  module Boxr
2
- VERSION = "0.31.0"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Burnette
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-09 00:00:00.000000000 Z
11
+ date: 2015-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler