Skip to content
Snippets Groups Projects
Commit 6e12c571 authored by Nicolas.Rod's avatar Nicolas.Rod
Browse files

feat(DocumentFile): new endpoint to resume a document file

parent c5bbe68a
No related branches found
No related tags found
No related merge requests found
......@@ -35,13 +35,16 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import ch.unige.solidify.SolidifyConstants;
import ch.unige.solidify.config.SolidifyEventPublisher;
import ch.unige.solidify.controller.ResourceReadOnlyController;
import ch.unige.solidify.exception.SolidifyHttpErrorException;
import ch.unige.solidify.rest.Result;
import ch.unige.solidify.security.RootPermissions;
import ch.unige.solidify.security.TrustedUserPermissions;
import ch.unige.aou.business.DocumentFileService;
import ch.unige.aou.controller.AdminController;
import ch.unige.aou.message.DocumentFileMessage;
import ch.unige.aou.model.publication.DocumentFile;
import ch.unige.aou.rest.AouActionName;
import ch.unige.aou.rest.UrlPath;
......@@ -78,4 +81,26 @@ public class DocumentFileController extends ResourceReadOnlyController<DocumentF
return new ResponseEntity<>(documentFile.getChecksum(), HttpStatus.OK);
}
@RootPermissions
@PostMapping(SolidifyConstants.URL_ID_PLUS_SEP + AouActionName.RESUME)
public HttpEntity<Result> resume(@PathVariable String id) {
DocumentFile documentFile = this.itemService.findOne(id);
final Result result = new Result(documentFile.getResId());
if (documentFile.getStatus() == DocumentFile.DocumentFileStatus.READY) {
result.setMesssage("Document file " + id + " cannot be resumed as it has the status READY");
} else {
documentFile.setStatus(DocumentFile.DocumentFileStatus.RECEIVED);
documentFile.setStatusMessage(null);
this.itemService.save(documentFile);
result.setStatus(Result.ActionStatus.EXECUTED);
result.setMesssage("Document file " + id + " resumed");
}
// Put document file in queue to be processed
if (result.getStatus() == Result.ActionStatus.EXECUTED) {
SolidifyEventPublisher.getPublisher().publishEvent(new DocumentFileMessage(id));
}
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment