Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ If any files are returned, you should check to see if these files affected and a
- If using S3 storage in docker, it was not reflected correctly in the docker-compose file.
- Docker image for mongo-init now based on python:3.7-slim to reduce size.

### Added
- Endpoint '/api/files/uploadToDataset' now allows folder_id for uploading file to folder. [#232](https://github.com/clowder-framework/clowder/issues/232)

## 1.17.0 - 2021-04-29

### Fixed
Expand Down
10 changes: 8 additions & 2 deletions app/api/Files.scala
Original file line number Diff line number Diff line change
Expand Up @@ -523,10 +523,16 @@ class Files @Inject()(
/**
* Upload a file to a specific dataset
*/
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 =>
def uploadToDataset(dataset_id: UUID, showPreviews: String = "DatasetLevel", originalZipFile: String = "", flagsFromPrevious: String = "", extract: Boolean = true, folder_id: Option[String]) = PermissionAction(Permission.AddResourceToDataset, Some(ResourceRef(ResourceRef.dataset, dataset_id)))(parse.multipartFormData) { implicit request =>
datasets.get(dataset_id) match {
case Some(dataset) => {
val uploadedFiles = FileUtils.uploadFilesMultipart(request, Some(dataset), showPreviews = showPreviews, originalZipFile = originalZipFile, flagsFromPrevious = flagsFromPrevious, runExtractors = extract, apiKey = request.apiKey)
var current_folder : Option[Folder] = None
if (folder_id != None) {
if (UUID.isValid(folder_id.get)){
current_folder = folders.get(UUID(folder_id.get))
}
}
val uploadedFiles = FileUtils.uploadFilesMultipart(request, Some(dataset), current_folder, showPreviews = showPreviews, originalZipFile = originalZipFile, flagsFromPrevious = flagsFromPrevious, runExtractors = extract, apiKey = request.apiKey)
uploadedFiles.length match {
case 0 => BadRequest("No files uploaded")
case 1 => Ok(Json.obj("id" -> uploadedFiles.head.id))
Expand Down
4 changes: 2 additions & 2 deletions conf/routes
Original file line number Diff line number Diff line change
Expand Up @@ -377,8 +377,8 @@ POST /api/files
POST /api/files/withFlags/:flags @api.Files.upload(showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String)
POST /api/files/searchusermetadata @api.Files.searchFilesUserMetadata
POST /api/files/searchmetadata @api.Files.searchFilesGeneralMetadata
POST /api/uploadToDataset/withFlags/:id/:flags @api.Files.uploadToDataset(id: UUID, showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String, extract: Boolean ?= true)
POST /api/uploadToDataset/:id @api.Files.uploadToDataset(id: UUID, showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String ?= "", extract: Boolean ?= true)
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)
POST /api/uploadToDataset/:id @api.Files.uploadToDataset(id: UUID, showPreviews: String ?= "DatasetLevel", originalZipFile: String ?= "", flags: String ?= "", extract: Boolean ?= true, folder_id: Option[String] ?= None)
PUT /api/files/:id/updateDescription @api.Files.updateDescription(id: UUID)
POST /api/files/uploadIntermediate/:idAndFlags @api.Files.uploadIntermediate(idAndFlags)
POST /api/files/sendJob/:fileId/:fileType @api.Files.sendJob(fileId: UUID,fileType)
Expand Down
4 changes: 4 additions & 0 deletions public/swagger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,10 @@ paths:
in: query
schema:
type: boolean
- name: folder_id
in: query
schema:
type: string
requestBody:
content:
multipart/form-data:
Expand Down