@@ -65,19 +65,19 @@ class Datasets @Inject()(
6565 }
6666 }
6767
68- def list (title : Option [String ], date : Option [String ], limit : Int , exact : Boolean ) = PrivateServerAction { implicit request =>
69- Ok (toJson(listDatasets(title, date, limit, Set [Permission ](Permission .ViewDataset ), request.user, request.user.fold(false )(_.superAdminMode), exact)))
68+ def list (when : Option [ String ], title : Option [String ], date : Option [String ], limit : Int , exact : Boolean ) = PrivateServerAction { implicit request =>
69+ Ok (toJson(listDatasets(when, title, date, limit, Set [Permission ](Permission .ViewDataset ), request.user, request.user.fold(false )(_.superAdminMode), exact)))
7070 }
7171
72- def listCanEdit (title : Option [String ], date : Option [String ], limit : Int , exact : Boolean ) = PrivateServerAction { implicit request =>
73- Ok (toJson(listDatasets(title, date, limit, Set [Permission ](Permission .AddResourceToDataset , Permission .EditDataset ), request.user, request.user.fold(false )(_.superAdminMode), exact)))
72+ def listCanEdit (when : Option [ String ], title : Option [String ], date : Option [String ], limit : Int , exact : Boolean ) = PrivateServerAction { implicit request =>
73+ Ok (toJson(listDatasets(when, title, date, limit, Set [Permission ](Permission .AddResourceToDataset , Permission .EditDataset ), request.user, request.user.fold(false )(_.superAdminMode), exact)))
7474 }
7575
7676 def listMoveFileToDataset (file_id : UUID , title : Option [String ], limit : Int , exact : Boolean ) = PrivateServerAction { implicit request =>
7777 if (play.Play .application().configuration().getBoolean(" datasetFileWithinSpace" )) {
7878 Ok (toJson(listDatasetsInSpace(file_id, title, limit, Set [Permission ](Permission .AddResourceToDataset , Permission .EditDataset ), request.user, request.user.fold(false )(_.superAdminMode), exact)))
7979 } else {
80- Ok (toJson(listDatasets(title, None , limit, Set [Permission ](Permission .AddResourceToDataset , Permission .EditDataset ), request.user, request.user.fold(false )(_.superAdminMode), exact)))
80+ Ok (toJson(listDatasets(None , title, None , limit, Set [Permission ](Permission .AddResourceToDataset , Permission .EditDataset ), request.user, request.user.fold(false )(_.superAdminMode), exact)))
8181 }
8282 }
8383
@@ -152,18 +152,31 @@ class Datasets @Inject()(
152152 /**
153153 * Returns list of datasets based on parameters and permissions.
154154 */
155- private def listDatasets (title : Option [String ], date : Option [String ], limit : Int , permission : Set [Permission ], user : Option [User ], superAdmin : Boolean , exact : Boolean ) : List [Dataset ] = {
156- (title, date) match {
157- case (Some (t), Some (d)) => {
155+ private def listDatasets (when : Option [String ], title : Option [String ], date : Option [String ], limit : Int , permission : Set [Permission ], user : Option [User ], superAdmin : Boolean , exact : Boolean ) : List [Dataset ] = {
156+ (when, title, date) match {
157+ case (Some (when), Some (t), Some (d)) => {
158+ datasets.listAccess(d, nextPage= (when== " a" ), limit, t, permission, user, superAdmin, true ,false , exact)
159+ }
160+ case (Some (when), Some (t), None ) => {
161+ datasets.listAccess(limit, t, permission, user, superAdmin, true ,false , exact)
162+ }
163+ case (Some (when), None , Some (d)) => {
164+ datasets.listAccess(d, nextPage= (when== " a" ), limit, permission, user, superAdmin, true ,false )
165+ }
166+ case (Some (when), None , None ) => {
167+ datasets.listAccess(limit, permission, user, superAdmin, true ,false )
168+ }
169+ // default when to be "after" if not present in parameters. i.e. nextPage=true
170+ case (None , Some (t), Some (d)) => {
158171 datasets.listAccess(d, true , limit, t, permission, user, superAdmin, true ,false , exact)
159172 }
160- case (Some (t), None ) => {
173+ case (None , Some (t), None ) => {
161174 datasets.listAccess(limit, t, permission, user, superAdmin, true ,false , exact)
162175 }
163- case (None , Some (d)) => {
176+ case (None , None , Some (d)) => {
164177 datasets.listAccess(d, true , limit, permission, user, superAdmin, true ,false )
165178 }
166- case (None , None ) => {
179+ case (None , None , None ) => {
167180 datasets.listAccess(limit, permission, user, superAdmin, true ,false )
168181 }
169182 }
0 commit comments