use of nikita.common.model.noark5.v4.DocumentDescription in project nikita-noark5-core by HiOA-ABI.
the class DocumentDescriptionService method findDocumentDescriptionByOwnerPaginated.
// All READ operations
@Override
public List<DocumentDescription> findDocumentDescriptionByOwnerPaginated(Integer top, Integer skip) {
if (top == null || top > maxPageSize) {
top = maxPageSize;
}
if (skip == null) {
skip = 0;
}
String loggedInUser = SecurityContextHolder.getContext().getAuthentication().getName();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<DocumentDescription> criteriaQuery = criteriaBuilder.createQuery(DocumentDescription.class);
Root<DocumentDescription> from = criteriaQuery.from(DocumentDescription.class);
CriteriaQuery<DocumentDescription> select = criteriaQuery.select(from);
criteriaQuery.where(criteriaBuilder.equal(from.get("ownedBy"), loggedInUser));
TypedQuery<DocumentDescription> typedQuery = entityManager.createQuery(select);
typedQuery.setFirstResult(skip);
typedQuery.setMaxResults(maxPageSize);
return typedQuery.getResultList();
}
use of nikita.common.model.noark5.v4.DocumentDescription in project nikita-noark5-core by HiOA-ABI.
the class DocumentDescriptionHateoasController method createDocumentObjectAssociatedWithDocumentDescription.
// API - All POST Requests (CRUD - CREATE)
@ApiOperation(value = "Persists a DocumentObject object associated with the given DocumentDescription systemId", notes = "Returns the newly created documentObject after it was associated with a DocumentDescription" + " object and persisted to the database", response = DocumentDescriptionHateoas.class)
@ApiResponses(value = { @ApiResponse(code = 200, message = "DocumentObject " + API_MESSAGE_OBJECT_ALREADY_PERSISTED, response = DocumentDescriptionHateoas.class), @ApiResponse(code = 201, message = "DocumentObject " + API_MESSAGE_OBJECT_SUCCESSFULLY_CREATED, response = DocumentDescriptionHateoas.class), @ApiResponse(code = 401, message = API_MESSAGE_UNAUTHENTICATED_USER), @ApiResponse(code = 403, message = API_MESSAGE_UNAUTHORISED_FOR_USER), @ApiResponse(code = 404, message = API_MESSAGE_PARENT_DOES_NOT_EXIST + " of type DocumentObject"), @ApiResponse(code = 409, message = API_MESSAGE_CONFLICT), @ApiResponse(code = 500, message = API_MESSAGE_INTERNAL_SERVER_ERROR) })
@Counted
@RequestMapping(method = RequestMethod.POST, value = SLASH + LEFT_PARENTHESIS + SYSTEM_ID + RIGHT_PARENTHESIS + SLASH + NEW_DOCUMENT_OBJECT, consumes = { NOARK5_V4_CONTENT_TYPE_JSON })
public ResponseEntity<DocumentObjectHateoas> createDocumentObjectAssociatedWithDocumentDescription(final UriComponentsBuilder uriBuilder, HttpServletRequest request, final HttpServletResponse response, @ApiParam(name = "systemID", value = "systemId of documentDescription to associate the documentObject with.", required = true) @PathVariable String systemID, @ApiParam(name = "documentObject", value = "Incoming documentObject object", required = true) @RequestBody DocumentObject documentObject) throws NikitaException {
DocumentObject createdDocumentObject = documentDescriptionService.createDocumentObjectAssociatedWithDocumentDescription(systemID, documentObject);
DocumentObjectHateoas documentObjectHateoas = new DocumentObjectHateoas(documentObject);
documentObjectHateoasHandler.addLinks(documentObjectHateoas, new Authorisation());
applicationEventPublisher.publishEvent(new AfterNoarkEntityCreatedEvent(this, createdDocumentObject));
return ResponseEntity.status(HttpStatus.CREATED).allow(CommonUtils.WebUtils.getMethodsForRequestOrThrow(request.getServletPath())).eTag(createdDocumentObject.getVersion().toString()).body(documentObjectHateoas);
}
use of nikita.common.model.noark5.v4.DocumentDescription in project nikita-noark5-core by HiOA-ABI.
the class DocumentDescriptionService method handleUpdate.
// -- All UPDATE operations
@Override
public DocumentDescription handleUpdate(@NotNull String systemId, @NotNull Long version, @NotNull DocumentDescription incomingDocumentDescription) {
DocumentDescription existingDocumentDescription = getDocumentDescriptionOrThrow(systemId);
// Copy all the values you are allowed to copy ....
if (null != incomingDocumentDescription.getDescription()) {
existingDocumentDescription.setDescription(incomingDocumentDescription.getDescription());
}
if (null != incomingDocumentDescription.getTitle()) {
existingDocumentDescription.setTitle(incomingDocumentDescription.getTitle());
}
if (null != incomingDocumentDescription.getDocumentMedium()) {
existingDocumentDescription.setDocumentMedium(existingDocumentDescription.getDocumentMedium());
}
if (null != incomingDocumentDescription.getAssociatedWithRecordAs()) {
existingDocumentDescription.setAssociatedWithRecordAs(incomingDocumentDescription.getAssociatedWithRecordAs());
}
if (null != incomingDocumentDescription.getDocumentNumber()) {
existingDocumentDescription.setDocumentNumber(incomingDocumentDescription.getDocumentNumber());
}
existingDocumentDescription.setVersion(version);
documentDescriptionRepository.save(existingDocumentDescription);
return existingDocumentDescription;
}
use of nikita.common.model.noark5.v4.DocumentDescription in project nikita-noark5-core by HiOA-ABI.
the class RecordService method createDocumentDescriptionAssociatedWithRecord.
@Override
public DocumentDescription createDocumentDescriptionAssociatedWithRecord(String systemID, DocumentDescription documentDescription) {
DocumentDescription persistedDocumentDescription = null;
Record record = recordRepository.findBySystemId(systemID);
if (record == null) {
String info = INFO_CANNOT_FIND_OBJECT + " Record, using systemID " + systemID;
logger.info(info);
throw new NoarkEntityNotFoundException(info);
} else {
ArrayList<Record> records = (ArrayList<Record>) documentDescription.getReferenceRecord();
if (records == null) {
records = new ArrayList<>();
documentDescription.setReferenceRecord(records);
}
records.add(record);
List<DocumentDescription> documentDescriptions = record.getReferenceDocumentDescription();
documentDescriptions.add(documentDescription);
persistedDocumentDescription = documentDescriptionService.save(documentDescription);
}
return persistedDocumentDescription;
}
use of nikita.common.model.noark5.v4.DocumentDescription in project nikita-noark5-core by HiOA-ABI.
the class DocumentDescriptionHateoasSerializer method serializeNoarkEntity.
@Override
public void serializeNoarkEntity(INikitaEntity noarkEntity, HateoasNoarkObject documentDescriptionHateoas, JsonGenerator jgen) throws IOException {
DocumentDescription documentDescription = (DocumentDescription) noarkEntity;
jgen.writeStartObject();
// handle DocumentDescription properties
CommonUtils.Hateoas.Serialize.printSystemIdEntity(jgen, documentDescription);
if (documentDescription.getDocumentType() != null) {
jgen.writeStringField(DOCUMENT_DESCRIPTION_DOCUMENT_TYPE, documentDescription.getDocumentType());
}
if (documentDescription.getDocumentStatus() != null) {
jgen.writeStringField(DOCUMENT_DESCRIPTION_STATUS, documentDescription.getDocumentStatus());
}
CommonUtils.Hateoas.Serialize.printTitleAndDescription(jgen, documentDescription);
if (documentDescription.getDocumentNumber() != null) {
jgen.writeNumberField(DOCUMENT_DESCRIPTION_DOCUMENT_NUMBER, documentDescription.getDocumentNumber().intValue());
}
CommonUtils.Hateoas.Serialize.printCreateEntity(jgen, documentDescription);
if (documentDescription.getAssociationDate() != null) {
jgen.writeStringField(DOCUMENT_DESCRIPTION_ASSOCIATION_DATE, Serialize.formatDate(documentDescription.getAssociationDate()));
}
if (documentDescription.getAssociationDate() != null) {
jgen.writeStringField(DOCUMENT_DESCRIPTION_ASSOCIATION_BY, documentDescription.getAssociatedBy());
}
if (documentDescription.getAssociatedWithRecordAs() != null) {
jgen.writeStringField(DOCUMENT_DESCRIPTION_ASSOCIATED_WITH_RECORD_AS, documentDescription.getAssociatedWithRecordAs());
}
CommonUtils.Hateoas.Serialize.printComment(jgen, documentDescription);
CommonUtils.Hateoas.Serialize.printDisposal(jgen, documentDescription);
CommonUtils.Hateoas.Serialize.printDisposalUndertaken(jgen, documentDescription);
CommonUtils.Hateoas.Serialize.printDeletion(jgen, documentDescription);
CommonUtils.Hateoas.Serialize.printScreening(jgen, documentDescription);
CommonUtils.Hateoas.Serialize.printClassified(jgen, documentDescription);
if (documentDescription.getStorageLocation() != null) {
jgen.writeStringField(STORAGE_LOCATION, documentDescription.getStorageLocation());
}
CommonUtils.Hateoas.Serialize.printElectronicSignature(jgen, documentDescription);
CommonUtils.Hateoas.Serialize.printHateoasLinks(jgen, documentDescriptionHateoas.getLinks(documentDescription));
jgen.writeEndObject();
}
Aggregations