Skip to content

Commit c6b3190

Browse files
committed
add when parameter to query after/before a date
1 parent 3e27a54 commit c6b3190

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

app/api/Datasets.scala

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

conf/routes

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,8 @@ GET /api/collections/:coll_id/removeFromSpaceAllowed/:space_id
555555
# ----------------------------------------------------------------------
556556
# DATASETS ENDPOINT
557557
# ----------------------------------------------------------------------
558-
GET /api/datasets @api.Datasets.list(title: Option[String] ?= None, date: Option[String] ?= None, limit: Int ?= 12, exact: Boolean ?= false)
559-
GET /api/datasets/canEdit @api.Datasets.listCanEdit(title: Option[String] ?= None, date: Option[String] ?= None, limit: Int ?= 12, exact: Boolean ?= false)
558+
GET /api/datasets @api.Datasets.list(when: Option[String] ?= None, title: Option[String] ?= None, date: Option[String] ?= None, limit: Int ?= 12, exact: Boolean ?= false)
559+
GET /api/datasets/canEdit @api.Datasets.listCanEdit(when: Option[String] ?= None, title: Option[String] ?= None, date: Option[String] ?= None, limit: Int ?= 12, exact: Boolean ?= false)
560560
GET /api/datasets/moveFileToDataset @api.Datasets.listMoveFileToDataset(file_id: UUID, title: Option[String] ?= None, limit: Int ?= 12, exact: Boolean ?= false)
561561
POST /api/datasets @api.Datasets.createDataset
562562
POST /api/datasets/createempty @api.Datasets.createEmptyDataset

0 commit comments

Comments
 (0)