use of de.tudarmstadt.ukp.clarin.webanno.webapp.remoteapi.aero.model.RDocument in project webanno by webanno.
the class AeroRemoteApiController method documentList.
@ApiOperation(value = "List documents in a project")
@RequestMapping(value = "/" + PROJECTS + "/{" + PARAM_PROJECT_ID + "}/" + DOCUMENTS, method = RequestMethod.GET, produces = APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<RResponse<List<RDocument>>> documentList(@PathVariable(PARAM_PROJECT_ID) long aProjectId) throws Exception {
// Get project (this also ensures that it exists and that the current user can access it
Project project = getProject(aProjectId);
List<SourceDocument> documents = documentService.listSourceDocuments(project);
List<RDocument> documentList = new ArrayList<>();
for (SourceDocument document : documents) {
documentList.add(new RDocument(document));
}
return ResponseEntity.ok(new RResponse<>(documentList));
}
use of de.tudarmstadt.ukp.clarin.webanno.webapp.remoteapi.aero.model.RDocument in project webanno by webanno.
the class AeroRemoteApiController method documentCreate.
@ApiOperation(value = "Create a new document in a project")
@ApiImplicitParams({ @ApiImplicitParam(name = PARAM_NAME, paramType = "form", required = true), @ApiImplicitParam(name = PARAM_FORMAT, paramType = "form", required = true), @ApiImplicitParam(name = PARAM_STATE, paramType = "form", required = true) })
@//
RequestMapping(//
value = "/" + PROJECTS + "/{" + PARAM_PROJECT_ID + "}/" + DOCUMENTS, //
method = RequestMethod.POST, //
consumes = MULTIPART_FORM_DATA_VALUE, produces = APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<RResponse<RDocument>> documentCreate(@PathVariable(PARAM_PROJECT_ID) long aProjectId, @RequestParam(PARAM_CONTENT) MultipartFile aFile, @RequestParam(PARAM_NAME) String aName, @RequestParam(PARAM_FORMAT) String aFormat, @RequestParam(PARAM_STATE) Optional<String> aState, UriComponentsBuilder aUcb) throws Exception {
// Get project (this also ensures that it exists and that the current user can access it
Project project = getProject(aProjectId);
// Check if the format is supported
if (!importExportService.getReadableFormatById(aFormat).isPresent()) {
throw new UnsupportedFormatException("Format [%s] not supported. Acceptable formats are %s.", aFormat, importExportService.getReadableFormats().stream().map(FormatSupport::getId).sorted().collect(Collectors.toList()));
}
// Meta data entry to the database
SourceDocument document = new SourceDocument();
document.setProject(project);
document.setName(aName);
document.setFormat(aFormat);
// Set state if one was provided
if (aState.isPresent()) {
SourceDocumentState state = parseSourceDocumentState(aState.get());
switch(state) {
// fallthrough
case NEW:
// fallthrough
case ANNOTATION_IN_PROGRESS:
case // fallthrough
ANNOTATION_FINISHED:
document.setState(state);
documentService.createSourceDocument(document);
break;
// fallthrough
case CURATION_IN_PROGRESS:
case CURATION_FINISHED:
default:
throw new IllegalObjectStateException("State [%s] not valid when uploading a document.", aState.get());
}
}
// Import source document to the project repository folder
try (InputStream is = aFile.getInputStream()) {
documentService.uploadSourceDocument(is, document);
}
RResponse<RDocument> rDocument = new RResponse<>(new RDocument(document));
if (aState.isPresent()) {
rDocument.addMessage(INFO, "State of document [" + document.getId() + "] set to [" + aState.get() + "]");
}
return ResponseEntity.created(aUcb.path(API_BASE + "/" + PROJECTS + "/{pid}/" + DOCUMENTS + "/{did}").buildAndExpand(project.getId(), document.getId()).toUri()).body(rDocument);
}
Aggregations