16718: Adds 'include_old_versions' param to groups#content.
authorLucas Di Pentima <lucas@di-pentima.com.ar>
Tue, 6 Oct 2020 16:04:09 +0000 (13:04 -0300)
committerLucas Di Pentima <lucas@di-pentima.com.ar>
Tue, 6 Oct 2020 16:04:09 +0000 (13:04 -0300)
Also, adds missing documentation on 'include_trash' param.

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas@di-pentima.com.ar>

doc/api/methods/groups.html.textile.liquid
services/api/app/controllers/arvados/v1/groups_controller.rb
services/api/test/functional/arvados/v1/schema_controller_test.rb

index 2653cccd5d257d74d2319d3c1da317b32389b84c..f85e621db45d5d66e127279934b2a503bd7e673a 100644 (file)
@@ -55,6 +55,8 @@ table(table table-bordered table-condensed).
 |recursive|boolean (default false)|Include items owned by subprojects.|query|@true@|
 |exclude_home_project|boolean (default false)|Only return items which are visible to the user but not accessible within the user's home project.  Use this to get a list of items that are shared with the user.  Uses the logic described under the "shared" endpoint.|query|@true@|
 |include|string|If provided with the value "owner_uuid", this will return owner objects in the "included" field of the response.|query||
+|include_trash|boolean (default false)|Include trashed objects.|query|@true@|
+|include_old_versions|boolean (default false)|Include past versions of the collections being listed.|query|@true@|
 
 Notes:
 
index 46d3a75a3a24407ac8ecb1541f2e646b89daf946..56ad2026bf25d6c29f515139501f7656ffff5d40 100644 (file)
@@ -38,7 +38,10 @@ class Arvados::V1::GroupsController < ApplicationController
                 type: 'boolean', required: false, description: 'Include contents from child groups recursively.'
               },
               include: {
-                type: 'string', required: false, description: 'Include objects referred to by listed field in "included" (only owner_uuid)'
+                type: 'string', required: false, description: 'Include objects referred to by listed field in "included" (only owner_uuid).'
+              },
+              include_old_versions: {
+                type: 'boolean', required: false, description: 'Include past collection versions.'
               }
             })
     params.delete(:select)
@@ -283,8 +286,10 @@ class Arvados::V1::GroupsController < ApplicationController
         end
       end.compact
 
-      @objects = klass.readable_by(*@read_users, {:include_trash => params[:include_trash]}).
-                 order(request_order).where(where_conds)
+      @objects = klass.readable_by(*@read_users, {
+          :include_trash => params[:include_trash],
+          :include_old_versions => params[:include_old_versions]
+        }).order(request_order).where(where_conds)
 
       if params['exclude_home_project']
         @objects = exclude_home @objects, klass
index 764f3a8d1dd395a7bb84b365144ca114bf3c92ff..89feecb454a9fa74541b7328cf282287ee46da6e 100644 (file)
@@ -84,7 +84,7 @@ class Arvados::V1::SchemaControllerTest < ActionController::TestCase
     group_index_params = discovery_doc['resources']['groups']['methods']['index']['parameters']
     group_contents_params = discovery_doc['resources']['groups']['methods']['contents']['parameters']
 
-    assert_equal group_contents_params.keys.sort, (group_index_params.keys - ['select'] + ['uuid', 'recursive', 'include']).sort
+    assert_equal group_contents_params.keys.sort, (group_index_params.keys - ['select'] + ['uuid', 'recursive', 'include', 'include_old_versions']).sort
 
     recursive_param = group_contents_params['recursive']
     assert_equal 'boolean', recursive_param['type']