Skip to content

Commit d9611f9

Browse files
committed
adding new parameter option string folder id
1 parent 5768698 commit d9611f9

File tree

2 files changed

+41
-8
lines changed

2 files changed

+41
-8
lines changed

app/api/Files.scala

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -523,14 +523,47 @@ class Files @Inject()(
523523
/**
524524
* Upload a file to a specific dataset
525525
*/
526-
def uploadToDataset(dataset_id: UUID, showPreviews: String = "DatasetLevel", originalZipFile: String = "", flagsFromPrevious: String = "", extract: Boolean = true) = PermissionAction(Permission.AddResourceToDataset, Some(ResourceRef(ResourceRef.dataset, dataset_id)))(parse.multipartFormData) { implicit request =>
526+
def uploadToDataset(dataset_id: UUID, showPreviews: String = "DatasetLevel", originalZipFile: String = "", flagsFromPrevious: String = "", extract: Boolean = true, folder_id: Option[String] = None) = PermissionAction(Permission.AddResourceToDataset, Some(ResourceRef(ResourceRef.dataset, dataset_id)))(parse.multipartFormData) { implicit request =>
527527
datasets.get(dataset_id) match {
528528
case Some(dataset) => {
529-
val uploadedFiles = FileUtils.uploadFilesMultipart(request, Some(dataset), showPreviews = showPreviews, originalZipFile = originalZipFile, flagsFromPrevious = flagsFromPrevious, runExtractors = extract, apiKey = request.apiKey)
530-
uploadedFiles.length match {
531-
case 0 => BadRequest("No files uploaded")
532-
case 1 => Ok(Json.obj("id" -> uploadedFiles.head.id))
533-
case _ => Ok(Json.obj("ids" -> uploadedFiles.toList))
529+
folder_id match {
530+
case Some(id) => {
531+
if (UUID.isValid(id)){
532+
folders.get(UUID(id)) match {
533+
case Some(folder) => {
534+
val uploadedFiles = FileUtils.uploadFilesMultipart(request, Some(dataset), Some(folder), showPreviews = showPreviews, originalZipFile = originalZipFile, flagsFromPrevious = flagsFromPrevious, runExtractors = extract, apiKey = request.apiKey)
535+
uploadedFiles.length match {
536+
case 0 => BadRequest("No files uploaded")
537+
case 1 => Ok(Json.obj("id" -> uploadedFiles.head.id))
538+
case _ => Ok(Json.obj("ids" -> uploadedFiles.toList))
539+
}
540+
}
541+
case None => {
542+
val uploadedFiles = FileUtils.uploadFilesMultipart(request, Some(dataset), showPreviews = showPreviews, originalZipFile = originalZipFile, flagsFromPrevious = flagsFromPrevious, runExtractors = extract, apiKey = request.apiKey)
543+
uploadedFiles.length match {
544+
case 0 => BadRequest("No files uploaded")
545+
case 1 => Ok(Json.obj("id" -> uploadedFiles.head.id))
546+
case _ => Ok(Json.obj("ids" -> uploadedFiles.toList))
547+
}
548+
}
549+
}
550+
} else {
551+
val uploadedFiles = FileUtils.uploadFilesMultipart(request, Some(dataset), showPreviews = showPreviews, originalZipFile = originalZipFile, flagsFromPrevious = flagsFromPrevious, runExtractors = extract, apiKey = request.apiKey)
552+
uploadedFiles.length match {
553+
case 0 => BadRequest("No files uploaded")
554+
case 1 => Ok(Json.obj("id" -> uploadedFiles.head.id))
555+
case _ => Ok(Json.obj("ids" -> uploadedFiles.toList))
556+
}
557+
}
558+
}
559+
case None => {
560+
val uploadedFiles = FileUtils.uploadFilesMultipart(request, Some(dataset), showPreviews = showPreviews, originalZipFile = originalZipFile, flagsFromPrevious = flagsFromPrevious, runExtractors = extract, apiKey = request.apiKey)
561+
uploadedFiles.length match {
562+
case 0 => BadRequest("No files uploaded")
563+
case 1 => Ok(Json.obj("id" -> uploadedFiles.head.id))
564+
case _ => Ok(Json.obj("ids" -> uploadedFiles.toList))
565+
}
566+
}
534567
}
535568
}
536569
case None => {

conf/routes

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,8 +377,8 @@ POST /api/files
377377
POST /api/files/withFlags/:flags @api.Files.upload(showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String)
378378
POST /api/files/searchusermetadata @api.Files.searchFilesUserMetadata
379379
POST /api/files/searchmetadata @api.Files.searchFilesGeneralMetadata
380-
POST /api/uploadToDataset/withFlags/:id/:flags @api.Files.uploadToDataset(id: UUID, showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String, extract: Boolean ?= true)
381-
POST /api/uploadToDataset/:id @api.Files.uploadToDataset(id: UUID, showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String ?= "", extract: Boolean ?= true)
380+
POST /api/uploadToDataset/withFlags/:id/:flags @api.Files.uploadToDataset(id: UUID, showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String, extract: Boolean ?= true, folder_id: Option[String] ?= None)
381+
POST /api/uploadToDataset/:id @api.Files.uploadToDataset(id: UUID, showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String ?= "", extract: Boolean ?= true, folder_id: Option[String] ?= None)
382382
PUT /api/files/:id/updateDescription @api.Files.updateDescription(id: UUID)
383383
POST /api/files/uploadIntermediate/:idAndFlags @api.Files.uploadIntermediate(idAndFlags)
384384
POST /api/files/sendJob/:fileId/:fileType @api.Files.sendJob(fileId: UUID,fileType)

0 commit comments

Comments
 (0)