boxr 0.3.0 → 0.4.0
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/README.md +1 -1
- data/lib/boxr/client.rb +15 -16
- data/lib/boxr/collaborations.rb +10 -10
- data/lib/boxr/comments.rb +15 -15
- data/lib/boxr/files.rb +55 -55
- data/lib/boxr/folders.rb +35 -36
- data/lib/boxr/groups.rb +26 -26
- data/lib/boxr/metadata.rb +12 -12
- data/lib/boxr/search.rb +1 -1
- data/lib/boxr/tasks.rb +30 -30
- data/lib/boxr/users.rb +8 -8
- data/lib/boxr/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9cdb5f7265259244d249458468620150e7a64f19
         | 
| 4 | 
            +
              data.tar.gz: 0adf2236b65d01221f5b5b00d249387ac613e6a8
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1113cc5af8e5de187b8c6ebd15625ae2164120ccde300b1e70dd484079ff6139d5eb4871605c1a6473c25e54e9a0896a07aef5ec63a62ff25d9429e3b3dd4963
         | 
| 7 | 
            +
              data.tar.gz: 5a9985a2d4799935c622c0120cd477e7f3c8fd5a2061494dc0ac2cd3046729bb522daf747bd03c09ef7acded42a1863fd895ee069f6977254e3b2cb7386030a1
         | 
    
        data/README.md
    CHANGED
    
    | @@ -3,7 +3,7 @@ Boxr is a Ruby client library for the Box V2 Content API that covers 100% of the | |
| 3 3 |  | 
| 4 4 | 
             
            The purpose of this gem is to provide a clear, efficient, and intentional method of interacting with the Box Content API. As with any SDK that wraps a REST API, it is important to fully understand the Box Content API at the REST endpoint level.  You are strongly encouraged to read through the Box documentation located [here](https://developers.box.com/docs/).
         | 
| 5 5 |  | 
| 6 | 
            -
            The full RubyDocs for Boxr can be found [here](http://www.rubydoc.info/gems/boxr).  You are also encouraged to rely heavily on the source code found in the [lib/boxr](https://github.com/cburnette/boxr/tree/master/lib/boxr) directory of this gem, as well as on the integration test found [here](https://github.com/cburnette/boxr/blob/master/spec/boxr_spec.rb).
         | 
| 6 | 
            +
            The full RubyDocs for Boxr can be found [here](http://www.rubydoc.info/gems/boxr/Boxr/Client).  You are also encouraged to rely heavily on the source code found in the [lib/boxr](https://github.com/cburnette/boxr/tree/master/lib/boxr) directory of this gem, as well as on the integration test found [here](https://github.com/cburnette/boxr/blob/master/spec/boxr_spec.rb).
         | 
| 7 7 |  | 
| 8 8 | 
             
            ## Installation
         | 
| 9 9 | 
             
            Add this line to your application's Gemfile:
         | 
    
        data/lib/boxr/client.rb
    CHANGED
    
    | @@ -82,7 +82,7 @@ module Boxr | |
| 82 82 |  | 
| 83 83 | 
             
                def get(uri, query: nil, success_codes: [200], process_response: true, if_match: nil, box_api_header: nil)
         | 
| 84 84 | 
             
                  res = with_auto_token_refresh do
         | 
| 85 | 
            -
                    headers = standard_headers | 
| 85 | 
            +
                    headers = standard_headers
         | 
| 86 86 | 
             
                    headers['If-Match'] = if_match unless if_match.nil?
         | 
| 87 87 | 
             
                    headers['BoxApi'] = box_api_header unless box_api_header.nil?
         | 
| 88 88 |  | 
| @@ -92,21 +92,20 @@ module Boxr | |
| 92 92 | 
             
                  check_response_status(res, success_codes)
         | 
| 93 93 |  | 
| 94 94 | 
             
                  if process_response
         | 
| 95 | 
            -
                    return processed_response | 
| 95 | 
            +
                    return processed_response(res)
         | 
| 96 96 | 
             
                  else
         | 
| 97 97 | 
             
                    return res.body, res
         | 
| 98 98 | 
             
                  end
         | 
| 99 99 | 
             
                end
         | 
| 100 100 |  | 
| 101 | 
            -
                def get_with_pagination(uri, query: {}, limit: DEFAULT_LIMIT)
         | 
| 101 | 
            +
                def get_with_pagination(uri, query: {}, offset: 0, limit: DEFAULT_LIMIT)
         | 
| 102 102 | 
             
                  entries = []
         | 
| 103 | 
            -
                  offset = 0
         | 
| 104 103 |  | 
| 105 104 | 
             
                  begin
         | 
| 106 105 | 
             
                    query[:limit] = limit
         | 
| 107 106 | 
             
                    query[:offset] = offset
         | 
| 108 107 | 
             
                    res = with_auto_token_refresh do
         | 
| 109 | 
            -
                      headers = standard_headers | 
| 108 | 
            +
                      headers = standard_headers
         | 
| 110 109 | 
             
                      BOX_CLIENT.get(uri, query: query, header: headers)
         | 
| 111 110 | 
             
                    end
         | 
| 112 111 |  | 
| @@ -128,7 +127,7 @@ module Boxr | |
| 128 127 | 
             
                  body = Oj.dump(body) if process_body
         | 
| 129 128 |  | 
| 130 129 | 
             
                  res = with_auto_token_refresh do
         | 
| 131 | 
            -
                    headers = standard_headers | 
| 130 | 
            +
                    headers = standard_headers
         | 
| 132 131 | 
             
                    headers['If-Match'] = if_match unless if_match.nil?
         | 
| 133 132 | 
             
                    headers["Content-MD5"] = content_md5 unless content_md5.nil?
         | 
| 134 133 | 
             
                    headers["Content-Type"] = content_type unless content_type.nil?
         | 
| @@ -138,12 +137,12 @@ module Boxr | |
| 138 137 |  | 
| 139 138 | 
             
                  check_response_status(res, success_codes)
         | 
| 140 139 |  | 
| 141 | 
            -
                  processed_response | 
| 140 | 
            +
                  processed_response(res)
         | 
| 142 141 | 
             
                end
         | 
| 143 142 |  | 
| 144 143 | 
             
                def put(uri, body, query: nil, success_codes: [200], content_type: nil, if_match: nil)
         | 
| 145 144 | 
             
                  res = with_auto_token_refresh do
         | 
| 146 | 
            -
                    headers = standard_headers | 
| 145 | 
            +
                    headers = standard_headers
         | 
| 147 146 | 
             
                    headers['If-Match'] = if_match unless if_match.nil?
         | 
| 148 147 | 
             
                    headers["Content-Type"] = content_type unless content_type.nil?
         | 
| 149 148 |  | 
| @@ -152,12 +151,12 @@ module Boxr | |
| 152 151 |  | 
| 153 152 | 
             
                  check_response_status(res, success_codes)
         | 
| 154 153 |  | 
| 155 | 
            -
                  processed_response | 
| 154 | 
            +
                  processed_response(res)
         | 
| 156 155 | 
             
                end
         | 
| 157 156 |  | 
| 158 157 | 
             
                def delete(uri, query: nil, success_codes: [204], if_match: nil)
         | 
| 159 158 | 
             
                  res = with_auto_token_refresh do
         | 
| 160 | 
            -
                    headers = standard_headers | 
| 159 | 
            +
                    headers = standard_headers
         | 
| 161 160 | 
             
                    headers['If-Match'] = if_match unless if_match.nil?
         | 
| 162 161 |  | 
| 163 162 | 
             
                    BOX_CLIENT.delete(uri, query: query, header: headers)
         | 
| @@ -165,18 +164,18 @@ module Boxr | |
| 165 164 |  | 
| 166 165 | 
             
                  check_response_status(res, success_codes)
         | 
| 167 166 |  | 
| 168 | 
            -
                  processed_response | 
| 167 | 
            +
                  processed_response(res)
         | 
| 169 168 | 
             
                end
         | 
| 170 169 |  | 
| 171 170 | 
             
                def options(uri, body, success_codes: [200])
         | 
| 172 171 | 
             
                  res = with_auto_token_refresh do
         | 
| 173 | 
            -
                    headers = standard_headers | 
| 172 | 
            +
                    headers = standard_headers
         | 
| 174 173 | 
             
                    BOX_CLIENT.options(uri, body: Oj.dump(body), header: headers)
         | 
| 175 174 | 
             
                  end
         | 
| 176 175 |  | 
| 177 176 | 
             
                  check_response_status(res, success_codes)
         | 
| 178 177 |  | 
| 179 | 
            -
                  processed_response | 
| 178 | 
            +
                  processed_response(res)
         | 
| 180 179 | 
             
                end
         | 
| 181 180 |  | 
| 182 181 | 
             
                def standard_headers()
         | 
| @@ -233,7 +232,7 @@ module Boxr | |
| 233 232 | 
             
                  attributes[:name] = name unless name.nil?
         | 
| 234 233 | 
             
                  attributes[:parent] = {id: parent_id} unless parent_id.nil?
         | 
| 235 234 |  | 
| 236 | 
            -
                  restored_item, response = post | 
| 235 | 
            +
                  restored_item, response = post(uri, attributes)
         | 
| 237 236 | 
             
                  restored_item
         | 
| 238 237 | 
             
                end
         | 
| 239 238 |  | 
| @@ -248,14 +247,14 @@ module Boxr | |
| 248 247 | 
             
                    attributes[:shared_link][:permissions][:can_preview] = can_preview unless can_preview.nil?
         | 
| 249 248 | 
             
                  end
         | 
| 250 249 |  | 
| 251 | 
            -
                  updated_item, response = put | 
| 250 | 
            +
                  updated_item, response = put(uri, attributes)
         | 
| 252 251 | 
             
                  updated_item
         | 
| 253 252 | 
             
                end
         | 
| 254 253 |  | 
| 255 254 | 
             
                def disable_shared_link(uri, item_id)
         | 
| 256 255 | 
             
                  attributes = {shared_link: nil}
         | 
| 257 256 |  | 
| 258 | 
            -
                  updated_item, response = put | 
| 257 | 
            +
                  updated_item, response = put(uri, attributes)
         | 
| 259 258 | 
             
                  updated_item
         | 
| 260 259 | 
             
                end
         | 
| 261 260 |  | 
    
        data/lib/boxr/collaborations.rb
    CHANGED
    
    | @@ -1,16 +1,16 @@ | |
| 1 1 | 
             
            module Boxr
         | 
| 2 2 | 
             
              class Client
         | 
| 3 3 |  | 
| 4 | 
            -
                def folder_collaborations( | 
| 5 | 
            -
                  folder_id = ensure_id( | 
| 4 | 
            +
                def folder_collaborations(folder)
         | 
| 5 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 6 6 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}/collaborations"
         | 
| 7 7 | 
             
                  collaborations, response = get(uri)
         | 
| 8 8 | 
             
                  collaborations['entries']
         | 
| 9 9 | 
             
                end
         | 
| 10 10 |  | 
| 11 11 | 
             
                #make sure 'role' value is a string as Box has role values with spaces and dashes; e.g. 'previewer uploader'
         | 
| 12 | 
            -
                def add_collaboration( | 
| 13 | 
            -
                  folder_id = ensure_id( | 
| 12 | 
            +
                def add_collaboration(folder, accessible_by, role, fields: [], notify: nil)
         | 
| 13 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 14 14 | 
             
                  query = build_fields_query(fields, COLLABORATION_FIELDS_QUERY)
         | 
| 15 15 | 
             
                  query[:notify] = :notify unless notify.nil?
         | 
| 16 16 |  | 
| @@ -22,8 +22,8 @@ module Boxr | |
| 22 22 | 
             
                  collaboration
         | 
| 23 23 | 
             
                end
         | 
| 24 24 |  | 
| 25 | 
            -
                def edit_collaboration( | 
| 26 | 
            -
                  collaboration_id = ensure_id( | 
| 25 | 
            +
                def edit_collaboration(collaboration, role: nil, status: nil)
         | 
| 26 | 
            +
                  collaboration_id = ensure_id(collaboration)
         | 
| 27 27 | 
             
                  uri = "#{COLLABORATIONS_URI}/#{collaboration_id}"
         | 
| 28 28 | 
             
                  attributes = {}
         | 
| 29 29 | 
             
                  attributes[:role] = role unless role.nil?
         | 
| @@ -33,15 +33,15 @@ module Boxr | |
| 33 33 | 
             
                  updated_collaboration
         | 
| 34 34 | 
             
                end
         | 
| 35 35 |  | 
| 36 | 
            -
                def remove_collaboration( | 
| 37 | 
            -
                  collaboration_id = ensure_id( | 
| 36 | 
            +
                def remove_collaboration(collaboration)
         | 
| 37 | 
            +
                  collaboration_id = ensure_id(collaboration)
         | 
| 38 38 | 
             
                  uri = "#{COLLABORATIONS_URI}/#{collaboration_id}"
         | 
| 39 39 | 
             
                  result, response = delete(uri)
         | 
| 40 40 | 
             
                  result
         | 
| 41 41 | 
             
                end
         | 
| 42 42 |  | 
| 43 | 
            -
                def collaboration( | 
| 44 | 
            -
                  collaboration_id = ensure_id( | 
| 43 | 
            +
                def collaboration(collaboration, fields: [], status: nil)
         | 
| 44 | 
            +
                  collaboration_id = ensure_id(collaboration)
         | 
| 45 45 | 
             
                  uri = "#{COLLABORATIONS_URI}/#{collaboration_id}"
         | 
| 46 46 |  | 
| 47 47 | 
             
                  query = build_fields_query(fields, COLLABORATION_FIELDS_QUERY)
         | 
    
        data/lib/boxr/comments.rb
    CHANGED
    
    | @@ -1,16 +1,16 @@ | |
| 1 1 | 
             
            module Boxr
         | 
| 2 2 | 
             
              class Client
         | 
| 3 3 |  | 
| 4 | 
            -
                def file_comments( | 
| 5 | 
            -
                  file_id = ensure_id( | 
| 4 | 
            +
                def file_comments(file, fields: [], offset: 0, limit: DEFAULT_LIMIT)
         | 
| 5 | 
            +
                  file_id = ensure_id(file)
         | 
| 6 6 | 
             
                  uri = "#{FILES_URI}/#{file_id}/comments"
         | 
| 7 7 | 
             
                  query = build_fields_query(fields, COMMENT_FIELDS_QUERY)
         | 
| 8 8 |  | 
| 9 | 
            -
                  comments = get_with_pagination | 
| 9 | 
            +
                  comments = get_with_pagination(uri, query: query, offset: offset, limit: limit)
         | 
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 | 
            -
                def add_comment_to_file( | 
| 13 | 
            -
                  file_id = ensure_id( | 
| 12 | 
            +
                def add_comment_to_file(file, message: nil, tagged_message: nil)
         | 
| 13 | 
            +
                  file_id = ensure_id(file)
         | 
| 14 14 | 
             
                  add_comment(:file, file_id, message, tagged_message)
         | 
| 15 15 | 
             
                end
         | 
| 16 16 |  | 
| @@ -19,25 +19,25 @@ module Boxr | |
| 19 19 | 
             
                  add_comment(:comment, comment_id, message, tagged_message)
         | 
| 20 20 | 
             
                end
         | 
| 21 21 |  | 
| 22 | 
            -
                def change_comment( | 
| 23 | 
            -
                  comment_id = ensure_id( | 
| 22 | 
            +
                def change_comment(comment, message)
         | 
| 23 | 
            +
                  comment_id = ensure_id(comment)
         | 
| 24 24 | 
             
                  uri = "#{COMMENTS_URI}/#{comment_id}"
         | 
| 25 25 | 
             
                  attributes = {message: message}
         | 
| 26 | 
            -
                  updated_comment, response = put | 
| 26 | 
            +
                  updated_comment, response = put(uri, attributes)
         | 
| 27 27 | 
             
                  updated_comment
         | 
| 28 28 | 
             
                end
         | 
| 29 29 |  | 
| 30 | 
            -
                def comment( | 
| 31 | 
            -
                  comment_id = ensure_id( | 
| 30 | 
            +
                def comment(comment, fields: [])
         | 
| 31 | 
            +
                  comment_id = ensure_id(comment)
         | 
| 32 32 | 
             
                  uri ="#{COMMENTS_URI}/#{comment_id}"
         | 
| 33 | 
            -
                  comment, response = get | 
| 33 | 
            +
                  comment, response = get(uri)
         | 
| 34 34 | 
             
                  comment
         | 
| 35 35 | 
             
                end
         | 
| 36 36 |  | 
| 37 | 
            -
                def delete_comment( | 
| 38 | 
            -
                  comment_id = ensure_id( | 
| 37 | 
            +
                def delete_comment(comment)
         | 
| 38 | 
            +
                  comment_id = ensure_id(comment)
         | 
| 39 39 | 
             
                  uri = "#{COMMENTS_URI}/#{comment_id}"
         | 
| 40 | 
            -
                  result, response = delete | 
| 40 | 
            +
                  result, response = delete(uri)
         | 
| 41 41 | 
             
                  result
         | 
| 42 42 | 
             
                end
         | 
| 43 43 |  | 
| @@ -50,7 +50,7 @@ module Boxr | |
| 50 50 | 
             
                  attributes[:message] = message unless message.nil?
         | 
| 51 51 | 
             
                  attributes[:tagged_message] = tagged_message unless tagged_message.nil?
         | 
| 52 52 |  | 
| 53 | 
            -
                  new_comment, response = post | 
| 53 | 
            +
                  new_comment, response = post(uri, attributes)
         | 
| 54 54 | 
             
                  new_comment
         | 
| 55 55 | 
             
                end
         | 
| 56 56 |  | 
    
        data/lib/boxr/files.rb
    CHANGED
    
    | @@ -11,22 +11,22 @@ module Boxr | |
| 11 11 |  | 
| 12 12 | 
             
                  folder = folder_from_path(path_items.join('/'))
         | 
| 13 13 |  | 
| 14 | 
            -
                  files = folder_items(folder | 
| 14 | 
            +
                  files = folder_items(folder, fields: [:id, :name]).files
         | 
| 15 15 | 
             
                  file = files.select{|f| f.name == file_name}.first
         | 
| 16 16 | 
             
                  raise BoxrException.new(boxr_message: "File not found: '#{file_name}'") if file.nil?
         | 
| 17 17 | 
             
                  file
         | 
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 | 
            -
                def file( | 
| 21 | 
            -
                  file_id = ensure_id( | 
| 20 | 
            +
                def file(file, fields: [])
         | 
| 21 | 
            +
                  file_id = ensure_id(file)
         | 
| 22 22 | 
             
                  uri = "#{FILES_URI}/#{file_id}"
         | 
| 23 23 | 
             
                  query = build_fields_query(fields, FOLDER_AND_FILE_FIELDS_QUERY)
         | 
| 24 | 
            -
                  file, response = get | 
| 24 | 
            +
                  file, response = get(uri, query: query)
         | 
| 25 25 | 
             
                  file
         | 
| 26 26 | 
             
                end
         | 
| 27 27 |  | 
| 28 | 
            -
                def update_file( | 
| 29 | 
            -
                  file_id = ensure_id( | 
| 28 | 
            +
                def update_file(file, name: nil, description: nil, parent_id: nil, shared_link: nil, tags: nil, if_match: nil)
         | 
| 29 | 
            +
                  file_id = ensure_id(file)
         | 
| 30 30 | 
             
                  uri = "#{FILES_URI}/#{file_id}"
         | 
| 31 31 |  | 
| 32 32 | 
             
                  attributes = {}
         | 
| @@ -36,23 +36,23 @@ module Boxr | |
| 36 36 | 
             
                  attributes[:shared_link] = shared_link unless shared_link.nil?
         | 
| 37 37 | 
             
                  attributes[:tags] = tags unless tags.nil? 
         | 
| 38 38 |  | 
| 39 | 
            -
                  updated_file, response = put | 
| 39 | 
            +
                  updated_file, response = put(uri, attributes, if_match: if_match)
         | 
| 40 40 | 
             
                  updated_file
         | 
| 41 41 | 
             
                end
         | 
| 42 42 |  | 
| 43 | 
            -
                def download_file( | 
| 44 | 
            -
                  file_id = ensure_id( | 
| 43 | 
            +
                def download_file(file, version: nil, follow_redirect: true)
         | 
| 44 | 
            +
                  file_id = ensure_id(file)
         | 
| 45 45 | 
             
                  begin
         | 
| 46 46 | 
             
                    uri = "#{FILES_URI}/#{file_id}/content"
         | 
| 47 47 | 
             
                    query = {}
         | 
| 48 48 | 
             
                    query[:version] = version unless version.nil?
         | 
| 49 | 
            -
                    body_json, response = get | 
| 49 | 
            +
                    body_json, response = get(uri, query: query, success_codes: [302,202])
         | 
| 50 50 |  | 
| 51 51 | 
             
                    if(response.status==302)
         | 
| 52 52 | 
             
                      location = response.header['Location'][0]
         | 
| 53 53 |  | 
| 54 54 | 
             
                      if(follow_redirect)
         | 
| 55 | 
            -
                        file, response = get | 
| 55 | 
            +
                        file, response = get(location, process_response: false)
         | 
| 56 56 | 
             
                      else
         | 
| 57 57 | 
             
                        return location #simply return the url
         | 
| 58 58 | 
             
                      end
         | 
| @@ -65,14 +65,14 @@ module Boxr | |
| 65 65 | 
             
                  file
         | 
| 66 66 | 
             
                end
         | 
| 67 67 |  | 
| 68 | 
            -
                def download_url( | 
| 69 | 
            -
                  download_file( | 
| 68 | 
            +
                def download_url(file, version: nil)
         | 
| 69 | 
            +
                  download_file(file, version: version, follow_redirect: false)
         | 
| 70 70 | 
             
                end
         | 
| 71 71 |  | 
| 72 | 
            -
                def upload_file(path_to_file,  | 
| 72 | 
            +
                def upload_file(path_to_file, parent, content_created_at: nil, content_modified_at: nil, 
         | 
| 73 73 | 
             
                                preflight_check: true, send_content_md5: true)
         | 
| 74 74 |  | 
| 75 | 
            -
                  parent_id = ensure_id( | 
| 75 | 
            +
                  parent_id = ensure_id(parent)
         | 
| 76 76 | 
             
                  preflight_check(path_to_file, parent_id) if preflight_check
         | 
| 77 77 |  | 
| 78 78 | 
             
                  file_info = nil
         | 
| @@ -83,22 +83,22 @@ module Boxr | |
| 83 83 | 
             
                    attributes = {filename: file, parent_id: parent_id}
         | 
| 84 84 | 
             
                    attributes[:content_created_at] = content_created_at.to_datetime.rfc3339 unless content_created_at.nil?
         | 
| 85 85 | 
             
                    attributes[:content_modified_at] = content_modified_at.to_datetime.rfc3339 unless content_modified_at.nil?
         | 
| 86 | 
            -
                    file_info, response = post | 
| 86 | 
            +
                    file_info, response = post(FILES_UPLOAD_URI, attributes, process_body: false, content_md5: content_md5)
         | 
| 87 87 | 
             
                  end
         | 
| 88 88 |  | 
| 89 89 | 
             
                  file_info["entries"][0]
         | 
| 90 90 | 
             
                end
         | 
| 91 91 |  | 
| 92 | 
            -
                def delete_file( | 
| 93 | 
            -
                  file_id = ensure_id( | 
| 92 | 
            +
                def delete_file(file, if_match: nil)
         | 
| 93 | 
            +
                  file_id = ensure_id(file)
         | 
| 94 94 | 
             
                  uri = "#{FILES_URI}/#{file_id}"
         | 
| 95 | 
            -
                  result, response = delete | 
| 95 | 
            +
                  result, response = delete(uri, if_match: if_match)
         | 
| 96 96 | 
             
                  result
         | 
| 97 97 | 
             
                end
         | 
| 98 98 |  | 
| 99 | 
            -
                def upload_new_version_of_file(path_to_file,  | 
| 99 | 
            +
                def upload_new_version_of_file(path_to_file, file, content_modified_at: nil, send_content_md5: true, 
         | 
| 100 100 | 
             
                                                preflight_check: true, if_match: nil)
         | 
| 101 | 
            -
                  file_id = ensure_id( | 
| 101 | 
            +
                  file_id = ensure_id(file)
         | 
| 102 102 | 
             
                  preflight_check_new_version_of_file(path_to_file, file_id) if preflight_check
         | 
| 103 103 |  | 
| 104 104 | 
             
                  uri = "#{UPLOAD_URI}/files/#{file_id}/content"
         | 
| @@ -109,62 +109,62 @@ module Boxr | |
| 109 109 | 
             
                    content_md5 = send_content_md5 ? Digest::SHA1.file(file).hexdigest : nil
         | 
| 110 110 | 
             
                    attributes = {filename: file}
         | 
| 111 111 | 
             
                    attributes[:content_modified_at] = content_modified_at.to_datetime.rfc3339 unless content_modified_at.nil?
         | 
| 112 | 
            -
                    file_info, response = post | 
| 112 | 
            +
                    file_info, response = post(uri, attributes, process_body: false, content_md5: content_md5, if_match: if_match)
         | 
| 113 113 | 
             
                  end
         | 
| 114 114 |  | 
| 115 115 | 
             
                  file_info["entries"][0]
         | 
| 116 116 | 
             
                end
         | 
| 117 117 |  | 
| 118 | 
            -
                def versions_of_file( | 
| 119 | 
            -
                  file_id = ensure_id( | 
| 118 | 
            +
                def versions_of_file(file)
         | 
| 119 | 
            +
                  file_id = ensure_id(file)
         | 
| 120 120 | 
             
                  uri = "#{FILES_URI}/#{file_id}/versions"
         | 
| 121 | 
            -
                  versions, response = get | 
| 121 | 
            +
                  versions, response = get(uri)
         | 
| 122 122 | 
             
                  versions["entries"]
         | 
| 123 123 | 
             
                end
         | 
| 124 124 |  | 
| 125 | 
            -
                def promote_old_version_of_file( | 
| 126 | 
            -
                  file_id = ensure_id( | 
| 127 | 
            -
                  file_version_id = ensure_id( | 
| 125 | 
            +
                def promote_old_version_of_file(file, file_version)
         | 
| 126 | 
            +
                  file_id = ensure_id(file)
         | 
| 127 | 
            +
                  file_version_id = ensure_id(file_version)
         | 
| 128 128 |  | 
| 129 129 | 
             
                  uri = "#{FILES_URI}/#{file_id}/versions/current"
         | 
| 130 130 | 
             
                  attributes = {:type => 'file_version', :id => file_version_id}
         | 
| 131 | 
            -
                  new_version, res = post | 
| 131 | 
            +
                  new_version, res = post(uri, attributes)
         | 
| 132 132 | 
             
                  new_version
         | 
| 133 133 | 
             
                end
         | 
| 134 134 |  | 
| 135 | 
            -
                def delete_old_version_of_file( | 
| 136 | 
            -
                  file_id = ensure_id( | 
| 137 | 
            -
                  file_version_id = ensure_id( | 
| 135 | 
            +
                def delete_old_version_of_file(file, file_version, if_match: nil)
         | 
| 136 | 
            +
                  file_id = ensure_id(file)
         | 
| 137 | 
            +
                  file_version_id = ensure_id(file_version)
         | 
| 138 138 |  | 
| 139 139 | 
             
                  uri = "#{FILES_URI}/#{file_id}/versions/#{file_version_id}"
         | 
| 140 | 
            -
                  result, response = delete | 
| 140 | 
            +
                  result, response = delete(uri, if_match: if_match)
         | 
| 141 141 | 
             
                  result
         | 
| 142 142 | 
             
                end
         | 
| 143 143 |  | 
| 144 | 
            -
                def copy_file( | 
| 145 | 
            -
                  file_id = ensure_id( | 
| 146 | 
            -
                  parent_id = ensure_id( | 
| 144 | 
            +
                def copy_file(file, parent, name: nil)
         | 
| 145 | 
            +
                  file_id = ensure_id(file)
         | 
| 146 | 
            +
                  parent_id = ensure_id(parent)
         | 
| 147 147 |  | 
| 148 148 | 
             
                  uri = "#{FILES_URI}/#{file_id}/copy"
         | 
| 149 149 | 
             
                  attributes = {:parent => {:id => parent_id}}
         | 
| 150 150 | 
             
                  attributes[:name] = name unless name.nil?
         | 
| 151 | 
            -
                  new_file, res = post | 
| 151 | 
            +
                  new_file, res = post(uri, attributes)
         | 
| 152 152 | 
             
                  new_file
         | 
| 153 153 | 
             
                end
         | 
| 154 154 |  | 
| 155 | 
            -
                def thumbnail( | 
| 156 | 
            -
                  file_id = ensure_id( | 
| 155 | 
            +
                def thumbnail(file, min_height: nil, min_width: nil, max_height: nil, max_width: nil)
         | 
| 156 | 
            +
                  file_id = ensure_id(file)
         | 
| 157 157 | 
             
                  uri = "#{FILES_URI}/#{file_id}/thumbnail.png"
         | 
| 158 158 | 
             
                  query = {}
         | 
| 159 159 | 
             
                  query[:min_height] = min_height unless min_height.nil?
         | 
| 160 160 | 
             
                  query[:min_width] = min_width unless min_width.nil?
         | 
| 161 161 | 
             
                  query[:max_height] = max_height unless max_height.nil?
         | 
| 162 162 | 
             
                  query[:max_width] = max_width unless max_width.nil?
         | 
| 163 | 
            -
                  body, response = get | 
| 163 | 
            +
                  body, response = get(uri, query: query, success_codes: [302,202,200], process_response: false)
         | 
| 164 164 |  | 
| 165 165 | 
             
                  if(response.status==202 || response.status==302)
         | 
| 166 166 | 
             
                    location = response.header['Location'][0]
         | 
| 167 | 
            -
                    thumbnail, response = get | 
| 167 | 
            +
                    thumbnail, response = get(location, process_response: false)
         | 
| 168 168 | 
             
                  else #200
         | 
| 169 169 | 
             
                    thumbnail = body
         | 
| 170 170 | 
             
                  end
         | 
| @@ -172,37 +172,37 @@ module Boxr | |
| 172 172 | 
             
                  thumbnail
         | 
| 173 173 | 
             
                end
         | 
| 174 174 |  | 
| 175 | 
            -
                def create_shared_link_for_file( | 
| 176 | 
            -
                  file_id = ensure_id( | 
| 175 | 
            +
                def create_shared_link_for_file(file, access: nil, unshared_at: nil, can_download: nil, can_preview: nil)
         | 
| 176 | 
            +
                  file_id = ensure_id(file)
         | 
| 177 177 | 
             
                  uri = "#{FILES_URI}/#{file_id}"
         | 
| 178 178 | 
             
                  create_shared_link(uri, file_id, access, unshared_at, can_download, can_preview)
         | 
| 179 179 | 
             
                end
         | 
| 180 180 |  | 
| 181 | 
            -
                def disable_shared_link_for_file( | 
| 182 | 
            -
                  file_id = ensure_id( | 
| 181 | 
            +
                def disable_shared_link_for_file(file)
         | 
| 182 | 
            +
                  file_id = ensure_id(file)
         | 
| 183 183 | 
             
                  uri = "#{FILES_URI}/#{file_id}"
         | 
| 184 184 | 
             
                  disable_shared_link(uri, file_id)
         | 
| 185 185 | 
             
                end
         | 
| 186 186 |  | 
| 187 | 
            -
                def trashed_file( | 
| 188 | 
            -
                  file_id = ensure_id( | 
| 187 | 
            +
                def trashed_file(file, fields: [])
         | 
| 188 | 
            +
                  file_id = ensure_id(file)
         | 
| 189 189 | 
             
                  uri = "#{FILES_URI}/#{file_id}/trash"
         | 
| 190 190 | 
             
                  query = build_fields_query(fields, FOLDER_AND_FILE_FIELDS_QUERY)
         | 
| 191 191 |  | 
| 192 | 
            -
                  trashed_file, response = get | 
| 192 | 
            +
                  trashed_file, response = get(uri, query: query)
         | 
| 193 193 | 
             
                  trashed_file
         | 
| 194 194 | 
             
                end
         | 
| 195 195 |  | 
| 196 | 
            -
                def delete_trashed_file( | 
| 197 | 
            -
                  file_id = ensure_id( | 
| 196 | 
            +
                def delete_trashed_file(file)
         | 
| 197 | 
            +
                  file_id = ensure_id(file)
         | 
| 198 198 | 
             
                  uri = "#{FILES_URI}/#{file_id}/trash"
         | 
| 199 199 |  | 
| 200 | 
            -
                  result, response = delete | 
| 200 | 
            +
                  result, response = delete(uri)
         | 
| 201 201 | 
             
                  result
         | 
| 202 202 | 
             
                end
         | 
| 203 203 |  | 
| 204 | 
            -
                def restore_trashed_file( | 
| 205 | 
            -
                  file_id = ensure_id( | 
| 204 | 
            +
                def restore_trashed_file(file, name: nil, parent_id: nil)
         | 
| 205 | 
            +
                  file_id = ensure_id(file)
         | 
| 206 206 | 
             
                  uri = "#{FILES_URI}/#{file_id}"
         | 
| 207 207 | 
             
                  restore_trashed_item(uri, name, parent_id)
         | 
| 208 208 | 
             
                end
         | 
| @@ -216,13 +216,13 @@ module Boxr | |
| 216 216 | 
             
                  #TODO: need to make sure that figuring out the filename from the path_to_file works for people using Winblows
         | 
| 217 217 | 
             
                  filename = File.basename(path_to_file)
         | 
| 218 218 | 
             
                  attributes = {"name" => filename, "parent" => {"id" => "#{parent_id}"}, "size" => size}
         | 
| 219 | 
            -
                  body_json, res = options | 
| 219 | 
            +
                  body_json, res = options("#{FILES_URI}/content", attributes)
         | 
| 220 220 | 
             
                end
         | 
| 221 221 |  | 
| 222 222 | 
             
                def preflight_check_new_version_of_file(path_to_file, file_id)
         | 
| 223 223 | 
             
                  size = File.size(path_to_file)
         | 
| 224 224 | 
             
                  attributes = {"size" => size}
         | 
| 225 | 
            -
                  body_json, res = options | 
| 225 | 
            +
                  body_json, res = options("#{FILES_URI}/#{file_id}/content", attributes)
         | 
| 226 226 | 
             
                end
         | 
| 227 227 |  | 
| 228 228 | 
             
              end
         | 
    
        data/lib/boxr/folders.rb
    CHANGED
    
    | @@ -8,49 +8,48 @@ module Boxr | |
| 8 8 |  | 
| 9 9 | 
             
                  path_folders = path.split('/')
         | 
| 10 10 |  | 
| 11 | 
            -
                   | 
| 12 | 
            -
             | 
| 13 | 
            -
                    folders = folder_items(parent_folder.id, fields: [:id, :name]).folders
         | 
| 11 | 
            +
                  folder = path_folders.inject(Boxr::ROOT) do |parent_folder, folder_name|
         | 
| 12 | 
            +
                    folders = folder_items(parent_folder, fields: [:id, :name]).folders
         | 
| 14 13 | 
             
                    folder = folders.select{|f| f.name == folder_name}.first
         | 
| 15 14 | 
             
                    raise BoxrException.new(boxr_message: "Folder not found: '#{folder_name}'") if folder.nil?
         | 
| 16 15 | 
             
                    folder
         | 
| 17 16 | 
             
                  end
         | 
| 18 17 | 
             
                end
         | 
| 19 18 |  | 
| 20 | 
            -
                def folder_items( | 
| 21 | 
            -
                  folder_id = ensure_id( | 
| 19 | 
            +
                def folder_items(folder, fields: [], offset: 0, limit: FOLDER_ITEMS_LIMIT)
         | 
| 20 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 22 21 | 
             
                  query = build_fields_query(fields, FOLDER_AND_FILE_FIELDS_QUERY)
         | 
| 23 22 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}/items"
         | 
| 24 23 |  | 
| 25 | 
            -
                  items = get_with_pagination | 
| 24 | 
            +
                  items = get_with_pagination(uri, query: query, offset: offset, limit: limit)
         | 
| 26 25 | 
             
                end
         | 
| 27 26 |  | 
| 28 27 | 
             
                def root_folder_items(fields: [])
         | 
| 29 28 | 
             
                  folder_items(Boxr::ROOT, fields: fields)
         | 
| 30 29 | 
             
                end
         | 
| 31 30 |  | 
| 32 | 
            -
                def create_folder(name,  | 
| 33 | 
            -
                  parent_id = ensure_id( | 
| 31 | 
            +
                def create_folder(name, parent)
         | 
| 32 | 
            +
                  parent_id = ensure_id(parent)
         | 
| 34 33 | 
             
                  uri = "#{FOLDERS_URI}"
         | 
| 35 34 | 
             
                  attributes = {:name => name, :parent => {:id => parent_id}}
         | 
| 36 35 |  | 
| 37 | 
            -
                  created_folder, response = post | 
| 36 | 
            +
                  created_folder, response = post(uri, attributes)
         | 
| 38 37 | 
             
                  created_folder
         | 
| 39 38 | 
             
                end
         | 
| 40 39 |  | 
| 41 | 
            -
                def folder( | 
| 42 | 
            -
                  folder_id = ensure_id( | 
| 40 | 
            +
                def folder(folder, fields: [])
         | 
| 41 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 43 42 | 
             
                  query = build_fields_query(fields, FOLDER_AND_FILE_FIELDS_QUERY)
         | 
| 44 43 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}"
         | 
| 45 44 |  | 
| 46 | 
            -
                  folder, response = get | 
| 45 | 
            +
                  folder, response = get(uri, query: query)
         | 
| 47 46 | 
             
                  folder
         | 
| 48 47 | 
             
                end
         | 
| 49 48 |  | 
| 50 | 
            -
                def update_folder( | 
| 49 | 
            +
                def update_folder(folder, name: nil, description: nil, parent_id: nil, shared_link: nil,
         | 
| 51 50 | 
             
                                       folder_upload_email_access: nil, owned_by_id: nil, sync_state: nil, tags: nil,
         | 
| 52 51 | 
             
                                       can_non_owners_invite: nil, if_match: nil)
         | 
| 53 | 
            -
                  folder_id = ensure_id( | 
| 52 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 54 53 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}"
         | 
| 55 54 |  | 
| 56 55 | 
             
                  attributes = {}
         | 
| @@ -64,68 +63,68 @@ module Boxr | |
| 64 63 | 
             
                  attributes[:tags] = tags unless tags.nil? 
         | 
| 65 64 | 
             
                  attributes[:can_non_owners_invite] = can_non_owners_invite unless can_non_owners_invite.nil?
         | 
| 66 65 |  | 
| 67 | 
            -
                  updated_folder, response = put | 
| 66 | 
            +
                  updated_folder, response = put(uri, attributes, if_match: if_match)
         | 
| 68 67 | 
             
                  updated_folder
         | 
| 69 68 | 
             
                end
         | 
| 70 69 |  | 
| 71 | 
            -
                def delete_folder( | 
| 72 | 
            -
                  folder_id = ensure_id( | 
| 70 | 
            +
                def delete_folder(folder, recursive: false, if_match: nil)
         | 
| 71 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 73 72 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}"
         | 
| 74 73 | 
             
                  query = {:recursive => recursive}
         | 
| 75 74 |  | 
| 76 | 
            -
                  result, response = delete | 
| 75 | 
            +
                  result, response = delete(uri, query: query, if_match: if_match)
         | 
| 77 76 | 
             
                  result
         | 
| 78 77 | 
             
                end
         | 
| 79 78 |  | 
| 80 | 
            -
                def copy_folder( | 
| 81 | 
            -
                  folder_id = ensure_id( | 
| 82 | 
            -
                  dest_folder_id = ensure_id( | 
| 79 | 
            +
                def copy_folder(folder, dest_folder, name: nil)
         | 
| 80 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 81 | 
            +
                  dest_folder_id = ensure_id(dest_folder)
         | 
| 83 82 |  | 
| 84 83 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}/copy"
         | 
| 85 84 | 
             
                  attributes = {:parent => {:id => dest_folder_id}}
         | 
| 86 85 | 
             
                  attributes[:name] = name unless name.nil?
         | 
| 87 86 |  | 
| 88 | 
            -
                  new_folder, response = post | 
| 87 | 
            +
                  new_folder, response = post(uri, attributes)
         | 
| 89 88 | 
             
                  new_folder
         | 
| 90 89 | 
             
                end
         | 
| 91 90 |  | 
| 92 | 
            -
                def create_shared_link_for_folder( | 
| 93 | 
            -
                  folder_id = ensure_id( | 
| 91 | 
            +
                def create_shared_link_for_folder(folder, access: nil, unshared_at: nil, can_download: nil, can_preview: nil)
         | 
| 92 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 94 93 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}"
         | 
| 95 94 | 
             
                  create_shared_link(uri, folder_id, access, unshared_at, can_download, can_preview)
         | 
| 96 95 | 
             
                end
         | 
| 97 96 |  | 
| 98 | 
            -
                def disable_shared_link_for_folder( | 
| 99 | 
            -
                  folder_id = ensure_id( | 
| 97 | 
            +
                def disable_shared_link_for_folder(folder)
         | 
| 98 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 100 99 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}"
         | 
| 101 100 | 
             
                  disable_shared_link(uri, folder_id)
         | 
| 102 101 | 
             
                end
         | 
| 103 102 |  | 
| 104 | 
            -
                def trash(fields: [])
         | 
| 103 | 
            +
                def trash(fields: [], offset: 0, limit: FOLDER_ITEMS_LIMIT)
         | 
| 105 104 | 
             
                  uri = "#{FOLDERS_URI}/trash/items"
         | 
| 106 105 | 
             
                  query = build_fields_query(fields, FOLDER_AND_FILE_FIELDS_QUERY)
         | 
| 107 106 |  | 
| 108 | 
            -
                  items = get_with_pagination | 
| 107 | 
            +
                  items = get_with_pagination(uri, query: query, offset: offset, limit: limit)
         | 
| 109 108 | 
             
                end
         | 
| 110 109 |  | 
| 111 | 
            -
                def trashed_folder( | 
| 112 | 
            -
                  folder_id = ensure_id( | 
| 110 | 
            +
                def trashed_folder(folder, fields: [])
         | 
| 111 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 113 112 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}/trash"
         | 
| 114 113 | 
             
                  query = build_fields_query(fields, FOLDER_AND_FILE_FIELDS_QUERY)
         | 
| 115 114 |  | 
| 116 | 
            -
                  folder, response = get | 
| 115 | 
            +
                  folder, response = get(uri, query: query)
         | 
| 117 116 | 
             
                  folder
         | 
| 118 117 | 
             
                end
         | 
| 119 118 |  | 
| 120 | 
            -
                def delete_trashed_folder( | 
| 121 | 
            -
                  folder_id = ensure_id( | 
| 119 | 
            +
                def delete_trashed_folder(folder)
         | 
| 120 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 122 121 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}/trash"
         | 
| 123 | 
            -
                  result, response = delete | 
| 122 | 
            +
                  result, response = delete(uri)
         | 
| 124 123 | 
             
                  result
         | 
| 125 124 | 
             
                end
         | 
| 126 125 |  | 
| 127 | 
            -
                def restore_trashed_folder( | 
| 128 | 
            -
                  folder_id = ensure_id( | 
| 126 | 
            +
                def restore_trashed_folder(folder, name: nil, parent_id: nil)
         | 
| 127 | 
            +
                  folder_id = ensure_id(folder)
         | 
| 129 128 | 
             
                  uri = "#{FOLDERS_URI}/#{folder_id}"
         | 
| 130 129 | 
             
                  restore_trashed_item(uri, name, parent_id)
         | 
| 131 130 | 
             
                end
         | 
    
        data/lib/boxr/groups.rb
    CHANGED
    
    | @@ -1,9 +1,9 @@ | |
| 1 1 | 
             
            module Boxr
         | 
| 2 2 | 
             
              class Client
         | 
| 3 3 |  | 
| 4 | 
            -
                def groups(fields: [])
         | 
| 4 | 
            +
                def groups(fields: [], offset: 0, limit: DEFAULT_LIMIT)
         | 
| 5 5 | 
             
                  query = build_fields_query(fields, GROUP_FIELDS_QUERY)
         | 
| 6 | 
            -
                  groups = get_with_pagination(GROUPS_URI, query: query)
         | 
| 6 | 
            +
                  groups = get_with_pagination(GROUPS_URI, query: query, offset: offset, limit: limit)
         | 
| 7 7 | 
             
                end
         | 
| 8 8 |  | 
| 9 9 | 
             
                def create_group(name)
         | 
| @@ -12,8 +12,8 @@ module Boxr | |
| 12 12 | 
             
                  new_group 
         | 
| 13 13 | 
             
                end
         | 
| 14 14 |  | 
| 15 | 
            -
                def update_group( | 
| 16 | 
            -
                  group_id = ensure_id( | 
| 15 | 
            +
                def update_group(group, name)
         | 
| 16 | 
            +
                  group_id = ensure_id(group)
         | 
| 17 17 | 
             
                  uri = "#{GROUPS_URI}/#{group_id}"
         | 
| 18 18 | 
             
                  attributes = {name: name}
         | 
| 19 19 |  | 
| @@ -23,40 +23,40 @@ module Boxr | |
| 23 23 |  | 
| 24 24 | 
             
                alias :rename_group :update_group
         | 
| 25 25 |  | 
| 26 | 
            -
                def delete_group( | 
| 27 | 
            -
                  group_id = ensure_id( | 
| 26 | 
            +
                def delete_group(group)
         | 
| 27 | 
            +
                  group_id = ensure_id(group)
         | 
| 28 28 | 
             
                  uri = "#{GROUPS_URI}/#{group_id}"
         | 
| 29 29 | 
             
                  result, response = delete(uri)
         | 
| 30 30 | 
             
                  result
         | 
| 31 31 | 
             
                end
         | 
| 32 32 |  | 
| 33 | 
            -
                def group_memberships( | 
| 34 | 
            -
                  group_id = ensure_id( | 
| 33 | 
            +
                def group_memberships(group, offset: 0, limit: DEFAULT_LIMIT)
         | 
| 34 | 
            +
                  group_id = ensure_id(group)
         | 
| 35 35 | 
             
                  uri = "#{GROUPS_URI}/#{group_id}/memberships"
         | 
| 36 | 
            -
                  memberships = get_with_pagination(uri)
         | 
| 36 | 
            +
                  memberships = get_with_pagination(uri, offset: offset, limit: limit)
         | 
| 37 37 | 
             
                end
         | 
| 38 38 |  | 
| 39 | 
            -
                def group_memberships_for_user( | 
| 40 | 
            -
                  user_id = ensure_id( | 
| 39 | 
            +
                def group_memberships_for_user(user, offset: 0, limit: DEFAULT_LIMIT)
         | 
| 40 | 
            +
                  user_id = ensure_id(user)
         | 
| 41 41 | 
             
                  uri = "#{USERS_URI}/#{user_id}/memberships"
         | 
| 42 | 
            -
                  memberships = get_with_pagination(uri)
         | 
| 42 | 
            +
                  memberships = get_with_pagination(uri, offset: offset, limit: limit)
         | 
| 43 43 | 
             
                end
         | 
| 44 44 |  | 
| 45 | 
            -
                def group_memberships_for_me
         | 
| 45 | 
            +
                def group_memberships_for_me(offset: 0, limit: DEFAULT_LIMIT)
         | 
| 46 46 | 
             
                  uri = "#{USERS_URI}/me/memberships"
         | 
| 47 | 
            -
                  memberships = get_with_pagination(uri)
         | 
| 47 | 
            +
                  memberships = get_with_pagination(uri, offset: offset, limit: limit)
         | 
| 48 48 | 
             
                end
         | 
| 49 49 |  | 
| 50 | 
            -
                def group_membership( | 
| 51 | 
            -
                  membership_id = ensure_id( | 
| 50 | 
            +
                def group_membership(membership)
         | 
| 51 | 
            +
                  membership_id = ensure_id(membership)
         | 
| 52 52 | 
             
                  uri = "#{GROUP_MEMBERSHIPS_URI}/#{membership_id}"
         | 
| 53 53 | 
             
                  membership, response = get(uri)
         | 
| 54 54 | 
             
                  membership
         | 
| 55 55 | 
             
                end
         | 
| 56 56 |  | 
| 57 | 
            -
                def add_user_to_group( | 
| 58 | 
            -
                  user_id = ensure_id( | 
| 59 | 
            -
                  group_id = ensure_id( | 
| 57 | 
            +
                def add_user_to_group(user, group, role: nil)
         | 
| 58 | 
            +
                  user_id = ensure_id(user)
         | 
| 59 | 
            +
                  group_id = ensure_id(group)
         | 
| 60 60 |  | 
| 61 61 | 
             
                  attributes = {user: {id: user_id}, group: {id: group_id}}
         | 
| 62 62 | 
             
                  attributes[:role] = role unless role.nil?
         | 
| @@ -64,25 +64,25 @@ module Boxr | |
| 64 64 | 
             
                  membership
         | 
| 65 65 | 
             
                end
         | 
| 66 66 |  | 
| 67 | 
            -
                def update_group_membership( | 
| 68 | 
            -
                  membership_id = ensure_id( | 
| 67 | 
            +
                def update_group_membership(membership, role)
         | 
| 68 | 
            +
                  membership_id = ensure_id(membership)
         | 
| 69 69 | 
             
                  uri = "#{GROUP_MEMBERSHIPS_URI}/#{membership_id}"
         | 
| 70 70 | 
             
                  attributes = {role: role}
         | 
| 71 71 | 
             
                  updated_membership, response = put(uri, attributes)
         | 
| 72 72 | 
             
                  updated_membership
         | 
| 73 73 | 
             
                end
         | 
| 74 74 |  | 
| 75 | 
            -
                def delete_group_membership( | 
| 76 | 
            -
                  membership_id = ensure_id( | 
| 75 | 
            +
                def delete_group_membership(membership)
         | 
| 76 | 
            +
                  membership_id = ensure_id(membership)
         | 
| 77 77 | 
             
                  uri = "#{GROUP_MEMBERSHIPS_URI}/#{membership_id}"
         | 
| 78 78 | 
             
                  result, response = delete(uri)
         | 
| 79 79 | 
             
                  result
         | 
| 80 80 | 
             
                end
         | 
| 81 81 |  | 
| 82 | 
            -
                def group_collaborations( | 
| 83 | 
            -
                  group_id = ensure_id( | 
| 82 | 
            +
                def group_collaborations(group, offset: 0, limit: DEFAULT_LIMIT)
         | 
| 83 | 
            +
                  group_id = ensure_id(group)
         | 
| 84 84 | 
             
                  uri = "#{GROUPS_URI}/#{group_id}/collaborations"
         | 
| 85 | 
            -
                  collaborations = get_with_pagination(uri)
         | 
| 85 | 
            +
                  collaborations = get_with_pagination(uri, offset: offset, limit: limit)
         | 
| 86 86 | 
             
                end
         | 
| 87 87 |  | 
| 88 88 | 
             
              end
         | 
    
        data/lib/boxr/metadata.rb
    CHANGED
    
    | @@ -1,31 +1,31 @@ | |
| 1 1 | 
             
            module Boxr
         | 
| 2 2 | 
             
              class Client
         | 
| 3 3 |  | 
| 4 | 
            -
                def create_metadata( | 
| 5 | 
            -
                  file_id = ensure_id( | 
| 4 | 
            +
                def create_metadata(file, metadata, type: :properties)
         | 
| 5 | 
            +
                  file_id = ensure_id(file)
         | 
| 6 6 | 
             
                  uri = "#{METADATA_URI}/#{file_id}/metadata/#{type}"
         | 
| 7 | 
            -
                  metadata, response = post | 
| 7 | 
            +
                  metadata, response = post(uri, metadata, content_type: "application/json")
         | 
| 8 8 | 
             
                  metadata
         | 
| 9 9 | 
             
                end
         | 
| 10 10 |  | 
| 11 | 
            -
                def metadata( | 
| 12 | 
            -
                  file_id = ensure_id( | 
| 11 | 
            +
                def metadata(file, type: :properties)
         | 
| 12 | 
            +
                  file_id = ensure_id(file)
         | 
| 13 13 | 
             
                  uri = "#{METADATA_URI}/#{file_id}/metadata/#{type}"
         | 
| 14 | 
            -
                  metadata, response = get | 
| 14 | 
            +
                  metadata, response = get(uri)
         | 
| 15 15 | 
             
                  metadata
         | 
| 16 16 | 
             
                end
         | 
| 17 17 |  | 
| 18 | 
            -
                def update_metadata( | 
| 19 | 
            -
                  file_id = ensure_id( | 
| 18 | 
            +
                def update_metadata(file, updates, type: :properties)
         | 
| 19 | 
            +
                  file_id = ensure_id(file)
         | 
| 20 20 | 
             
                  uri = "#{METADATA_URI}/#{file_id}/metadata/#{type}"
         | 
| 21 | 
            -
                  metadata, response = put | 
| 21 | 
            +
                  metadata, response = put(uri, updates, content_type: "application/json-patch+json")
         | 
| 22 22 | 
             
                  metadata
         | 
| 23 23 | 
             
                end
         | 
| 24 24 |  | 
| 25 | 
            -
                def delete_metadata( | 
| 26 | 
            -
                  file_id = ensure_id( | 
| 25 | 
            +
                def delete_metadata(file, type: :properties)
         | 
| 26 | 
            +
                  file_id = ensure_id(file)
         | 
| 27 27 | 
             
                  uri = "#{METADATA_URI}/#{file_id}/metadata/#{type}"
         | 
| 28 | 
            -
                  result, response = delete | 
| 28 | 
            +
                  result, response = delete(uri)
         | 
| 29 29 | 
             
                  result
         | 
| 30 30 | 
             
                end
         | 
| 31 31 |  | 
    
        data/lib/boxr/search.rb
    CHANGED
    
    
    
        data/lib/boxr/tasks.rb
    CHANGED
    
    | @@ -1,93 +1,93 @@ | |
| 1 1 | 
             
            module Boxr
         | 
| 2 2 | 
             
              class Client
         | 
| 3 3 |  | 
| 4 | 
            -
                def file_tasks( | 
| 5 | 
            -
                  file_id = ensure_id( | 
| 4 | 
            +
                def file_tasks(file, fields: [])
         | 
| 5 | 
            +
                  file_id = ensure_id(file)
         | 
| 6 6 | 
             
                  uri = "#{FILES_URI}/#{file_id}/tasks"
         | 
| 7 7 | 
             
                  query = build_fields_query(fields, TASK_FIELDS_QUERY)
         | 
| 8 8 |  | 
| 9 | 
            -
                  tasks, response = get | 
| 9 | 
            +
                  tasks, response = get(uri, query: query)
         | 
| 10 10 | 
             
                  tasks["entries"]
         | 
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 | 
            -
                def create_task( | 
| 14 | 
            -
                  file_id = ensure_id( | 
| 13 | 
            +
                def create_task(file, action: :review, message: nil, due_at: nil)
         | 
| 14 | 
            +
                  file_id = ensure_id(file)
         | 
| 15 15 | 
             
                  attributes = {item: {type: :file, id: file_id}}
         | 
| 16 16 | 
             
                  attributes[:action] = action unless action.nil?
         | 
| 17 17 | 
             
                  attributes[:message] = message unless message.nil?
         | 
| 18 18 | 
             
                  attributes[:due_at] = due_at.to_datetime.rfc3339 unless due_at.nil?
         | 
| 19 19 |  | 
| 20 | 
            -
                  new_task, response = post | 
| 20 | 
            +
                  new_task, response = post(TASKS_URI, attributes)
         | 
| 21 21 | 
             
                  new_task
         | 
| 22 22 | 
             
                end
         | 
| 23 23 |  | 
| 24 | 
            -
                def task( | 
| 25 | 
            -
                  task_id = ensure_id( | 
| 24 | 
            +
                def task(task)
         | 
| 25 | 
            +
                  task_id = ensure_id(task)
         | 
| 26 26 | 
             
                  uri = "#{TASKS_URI}/#{task_id}"
         | 
| 27 | 
            -
                  task, response = get | 
| 27 | 
            +
                  task, response = get(uri)
         | 
| 28 28 | 
             
                  task
         | 
| 29 29 | 
             
                end
         | 
| 30 30 |  | 
| 31 | 
            -
                def update_task( | 
| 32 | 
            -
                  task_id = ensure_id( | 
| 31 | 
            +
                def update_task(task, action: :review, message: nil, due_at: nil)
         | 
| 32 | 
            +
                  task_id = ensure_id(task)
         | 
| 33 33 | 
             
                  uri = "#{TASKS_URI}/#{task_id}"
         | 
| 34 34 | 
             
                  attributes = {}
         | 
| 35 35 | 
             
                  attributes[:action] = action unless action.nil?
         | 
| 36 36 | 
             
                  attributes[:message] = message unless message.nil?
         | 
| 37 37 | 
             
                  attributes[:due_at] = due_at.to_datetime.rfc3339 unless due_at.nil?
         | 
| 38 38 |  | 
| 39 | 
            -
                  task, response = put | 
| 39 | 
            +
                  task, response = put(uri, attributes)
         | 
| 40 40 | 
             
                  task
         | 
| 41 41 | 
             
                end
         | 
| 42 42 |  | 
| 43 | 
            -
                def delete_task( | 
| 44 | 
            -
                  task_id = ensure_id( | 
| 43 | 
            +
                def delete_task(task)
         | 
| 44 | 
            +
                  task_id = ensure_id(task)
         | 
| 45 45 | 
             
                  uri = "#{TASKS_URI}/#{task_id}"
         | 
| 46 | 
            -
                  result, response = delete | 
| 46 | 
            +
                  result, response = delete(uri)
         | 
| 47 47 | 
             
                  result
         | 
| 48 48 | 
             
                end
         | 
| 49 49 |  | 
| 50 | 
            -
                def task_assignments( | 
| 51 | 
            -
                  task_id = ensure_id( | 
| 50 | 
            +
                def task_assignments(task)
         | 
| 51 | 
            +
                  task_id = ensure_id(task)
         | 
| 52 52 | 
             
                  uri = "#{TASKS_URI}/#{task_id}/assignments"
         | 
| 53 | 
            -
                  assignments, response = get | 
| 53 | 
            +
                  assignments, response = get(uri)
         | 
| 54 54 | 
             
                  assignments['entries']
         | 
| 55 55 | 
             
                end
         | 
| 56 56 |  | 
| 57 | 
            -
                def create_task_assignment( | 
| 58 | 
            -
                  task_id = ensure_id( | 
| 57 | 
            +
                def create_task_assignment(task, assign_to_id: nil, assign_to_login: nil)
         | 
| 58 | 
            +
                  task_id = ensure_id(task)
         | 
| 59 59 | 
             
                  attributes = {task: {type: :task, id: "#{task_id}"}}
         | 
| 60 60 |  | 
| 61 61 | 
             
                  attributes[:assign_to] = {} 
         | 
| 62 62 | 
             
                  attributes[:assign_to][:login] = assign_to_login unless assign_to_login.nil?
         | 
| 63 63 | 
             
                  attributes[:assign_to][:id] = assign_to_id unless assign_to_id.nil?
         | 
| 64 64 |  | 
| 65 | 
            -
                  new_task_assignment, response = post | 
| 65 | 
            +
                  new_task_assignment, response = post(TASK_ASSIGNMENTS_URI, attributes)
         | 
| 66 66 | 
             
                  new_task_assignment
         | 
| 67 67 | 
             
                end
         | 
| 68 68 |  | 
| 69 | 
            -
                def task_assignment( | 
| 70 | 
            -
                  task_id = ensure_id( | 
| 69 | 
            +
                def task_assignment(task)
         | 
| 70 | 
            +
                  task_id = ensure_id(task)
         | 
| 71 71 | 
             
                  uri = "#{TASK_ASSIGNMENTS_URI}/#{task_id}"
         | 
| 72 | 
            -
                  task_assignment, response = get | 
| 72 | 
            +
                  task_assignment, response = get(uri)
         | 
| 73 73 | 
             
                  task_assignment
         | 
| 74 74 | 
             
                end
         | 
| 75 75 |  | 
| 76 | 
            -
                def delete_task_assignment( | 
| 77 | 
            -
                  task_id = ensure_id( | 
| 76 | 
            +
                def delete_task_assignment(task)
         | 
| 77 | 
            +
                  task_id = ensure_id(task)
         | 
| 78 78 | 
             
                  uri = "#{TASK_ASSIGNMENTS_URI}/#{task_id}"
         | 
| 79 | 
            -
                  result, response = delete | 
| 79 | 
            +
                  result, response = delete(uri)
         | 
| 80 80 | 
             
                  result
         | 
| 81 81 | 
             
                end
         | 
| 82 82 |  | 
| 83 | 
            -
                def update_task_assignment( | 
| 84 | 
            -
                  task_id = ensure_id( | 
| 83 | 
            +
                def update_task_assignment(task, message: nil, resolution_state: nil)
         | 
| 84 | 
            +
                  task_id = ensure_id(task)
         | 
| 85 85 | 
             
                  uri = "#{TASK_ASSIGNMENTS_URI}/#{task_id}"
         | 
| 86 86 | 
             
                  attributes = {}
         | 
| 87 87 | 
             
                  attributes[:message] = message unless message.nil?
         | 
| 88 88 | 
             
                  attributes[:resolution_state] = resolution_state unless resolution_state.nil?
         | 
| 89 89 |  | 
| 90 | 
            -
                  updated_task, response = put | 
| 90 | 
            +
                  updated_task, response = put(uri, attributes)
         | 
| 91 91 | 
             
                  updated_task
         | 
| 92 92 | 
             
                end
         | 
| 93 93 |  | 
    
        data/lib/boxr/users.rb
    CHANGED
    
    | @@ -10,19 +10,19 @@ module Boxr | |
| 10 10 |  | 
| 11 11 | 
             
                alias :me :current_user
         | 
| 12 12 |  | 
| 13 | 
            -
                def user( | 
| 14 | 
            -
                  user_id = ensure_id( | 
| 13 | 
            +
                def user(user, fields: [])
         | 
| 14 | 
            +
                  user_id = ensure_id(user)
         | 
| 15 15 | 
             
                  uri = "#{USERS_URI}/#{user_id}"
         | 
| 16 16 | 
             
                  query = build_fields_query(fields, USER_FIELDS_QUERY)
         | 
| 17 17 | 
             
                  user, response = get(uri, query: query)
         | 
| 18 18 | 
             
                  user
         | 
| 19 19 | 
             
                end
         | 
| 20 20 |  | 
| 21 | 
            -
                def all_users(filter_term: nil, fields: [])
         | 
| 21 | 
            +
                def all_users(filter_term: nil, fields: [], offset: 0, limit: DEFAULT_LIMIT)
         | 
| 22 22 | 
             
                  uri = USERS_URI
         | 
| 23 23 | 
             
                  query = build_fields_query(fields, USER_FIELDS_QUERY)
         | 
| 24 24 | 
             
                  query[:filter_term] = filter_term unless filter_term.nil?
         | 
| 25 | 
            -
                  users = get_with_pagination(uri, query: query)
         | 
| 25 | 
            +
                  users = get_with_pagination(uri, query: query, offset: offset, limit: limit)
         | 
| 26 26 | 
             
                end
         | 
| 27 27 |  | 
| 28 28 | 
             
                def create_user(login, name, role: nil, language: nil, is_sync_enabled: nil, job_title: nil,
         | 
| @@ -51,12 +51,12 @@ module Boxr | |
| 51 51 | 
             
                  new_user
         | 
| 52 52 | 
             
                end
         | 
| 53 53 |  | 
| 54 | 
            -
                def update_user( | 
| 54 | 
            +
                def update_user(user, notify: nil, enterprise: true, name: nil, role: nil, language: nil, is_sync_enabled: nil,
         | 
| 55 55 | 
             
                                         job_title: nil, phone: nil, address: nil, space_amount: nil, tracking_codes: nil,
         | 
| 56 56 | 
             
                                         can_see_managed_users: nil, status: nil, timezone: nil, is_exempt_from_device_limits: nil,
         | 
| 57 57 | 
             
                                         is_exempt_from_login_verification: nil, is_exempt_from_reset_required: nil, is_external_collab_restricted: nil)
         | 
| 58 58 |  | 
| 59 | 
            -
                  user_id = ensure_id( | 
| 59 | 
            +
                  user_id = ensure_id(user)
         | 
| 60 60 | 
             
                  uri = "#{USERS_URI}/#{user_id}"
         | 
| 61 61 | 
             
                  query = {notify: notify} unless notify.nil?
         | 
| 62 62 |  | 
| @@ -83,8 +83,8 @@ module Boxr | |
| 83 83 | 
             
                  updated_user
         | 
| 84 84 | 
             
                end
         | 
| 85 85 |  | 
| 86 | 
            -
                def delete_user( | 
| 87 | 
            -
                  user_id = ensure_id( | 
| 86 | 
            +
                def delete_user(user, notify: nil, force: nil)
         | 
| 87 | 
            +
                  user_id = ensure_id(user)
         | 
| 88 88 | 
             
                  uri = "#{USERS_URI}/#{user_id}"
         | 
| 89 89 | 
             
                  query = {}
         | 
| 90 90 | 
             
                  query[:notify] = notify unless notify.nil?
         | 
    
        data/lib/boxr/version.rb
    CHANGED