Added user action and versioning for document.
This commit is contained in:
@@ -2,9 +2,15 @@ package net.gepafin.tendermanagement.dao;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
||||
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||
import net.gepafin.tendermanagement.util.Utils;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -47,11 +53,18 @@ public class DocumentDao {
|
||||
|
||||
@Autowired
|
||||
private ApplicationRepository applicationFormRepository;
|
||||
|
||||
@Autowired
|
||||
private LoggingUtil loggingUtil;
|
||||
|
||||
@Autowired
|
||||
private HttpServletRequest request;
|
||||
|
||||
// @Value("${aws.s3.url.folder}")
|
||||
// private String s3Folder;
|
||||
|
||||
public List<DocumentResponseBean> uploadFiles(List<MultipartFile> files, Long sourceId, DocumentSourceTypeEnum sourceType, DocumentTypeEnum fileType) {
|
||||
|
||||
List<DocumentEntity> documentEntities = new ArrayList<>();
|
||||
Long source = resolveSourceId(sourceId, sourceType);
|
||||
for (MultipartFile file : files) {
|
||||
@@ -68,8 +81,44 @@ public class DocumentDao {
|
||||
}
|
||||
}
|
||||
documentRepository.saveAll(documentEntities);
|
||||
|
||||
/** This code is responsible for adding a version history log for the "Upload call or application document based on source type" operation. **/
|
||||
|
||||
documentEntities.forEach(entity -> loggingUtil.addVersionHistory(
|
||||
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(entity).build()));
|
||||
|
||||
return documentEntities.stream().map(callDao::convertToDocumentResponseBean).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public UserActionContextEnum getUserActionContextEnum(DocumentSourceTypeEnum sourceType, DocumentTypeEnum fileType) {
|
||||
|
||||
UserActionContextEnum userActionContext = null;
|
||||
|
||||
if (fileType.equals(DocumentTypeEnum.DOCUMENT) && sourceType.equals(DocumentSourceTypeEnum.CALL)) {
|
||||
userActionContext = UserActionContextEnum.UPLOAD_CALL_DOCUMENT;
|
||||
} else if (fileType.equals(DocumentTypeEnum.IMAGES) && sourceType.equals(DocumentSourceTypeEnum.CALL)) {
|
||||
userActionContext = UserActionContextEnum.UPLOAD_CALL_IMAGES;
|
||||
} else if (fileType.equals(DocumentTypeEnum.DOCUMENT) && sourceType.equals(DocumentSourceTypeEnum.APPLICATION)) {
|
||||
userActionContext = UserActionContextEnum.UPLOAD_APPLICATION_DOCUMENT;
|
||||
} else if (fileType.equals(DocumentTypeEnum.IMAGES) && sourceType.equals(DocumentSourceTypeEnum.APPLICATION)) {
|
||||
userActionContext = UserActionContextEnum.UPLOAD_APPLICATION_IMAGES;
|
||||
}
|
||||
|
||||
return userActionContext;
|
||||
}
|
||||
|
||||
public UserActionContextEnum getUserActionContextForUpdatingDocOrImage(DocumentTypeEnum documentTypeEnum) {
|
||||
|
||||
UserActionContextEnum userActionContext;
|
||||
|
||||
if (DocumentTypeEnum.DOCUMENT.equals(documentTypeEnum)) {
|
||||
userActionContext = UserActionContextEnum.UPDATE_DOCUMENT;
|
||||
} else{
|
||||
userActionContext = UserActionContextEnum.UPDATE_IMAGES;
|
||||
}
|
||||
return userActionContext;
|
||||
}
|
||||
|
||||
private UploadFileOnAmazonS3Response uploadFileOnAmazonS3(MultipartFile file, DocumentSourceTypeEnum type, Long sourceId) {
|
||||
|
||||
Long applicationId = 0L;
|
||||
@@ -109,11 +158,19 @@ public class DocumentDao {
|
||||
}
|
||||
|
||||
public void deleteFile(Long documentId) {
|
||||
|
||||
DocumentEntity documentEntity = validateDocument(documentId);
|
||||
// String fileName= Utils.extractFileName(documentEntity.getFilePath());
|
||||
// deleteFileOnAmazonS3(fileName);
|
||||
//cloned for old data
|
||||
DocumentEntity oldDocumentEntity = Utils.getClonedEntityForData(documentEntity);
|
||||
|
||||
// String fileName= Utils.extractFileName(documentEntity.getFilePath());
|
||||
// deleteFileOnAmazonS3(fileName);
|
||||
documentEntity.setIsDeleted(true);
|
||||
documentRepository.save(documentEntity);
|
||||
|
||||
/** This code is responsible for adding a version history log for the "Soft delete document" operation. **/
|
||||
loggingUtil.addVersionHistory(
|
||||
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldDocumentEntity).newData(documentEntity).build());
|
||||
}
|
||||
|
||||
|
||||
@@ -123,16 +180,24 @@ public class DocumentDao {
|
||||
}
|
||||
|
||||
public DocumentResponseBean updateDocument(Long documentId, MultipartFile file, DocumentTypeEnum documentTypeEnum) {
|
||||
|
||||
DocumentEntity documentEntity = validateDocument(documentId);
|
||||
//cloned entity for old data
|
||||
DocumentEntity oldDocumentData = Utils.getClonedEntityForData(documentEntity);
|
||||
|
||||
String type = documentEntity.getSource();
|
||||
UploadFileOnAmazonS3Response uploadFileOnAmazonS3Response = updateFileOnAmazonS3(file, DocumentSourceTypeEnum.valueOf(type), documentEntity.getSourceId());
|
||||
if (uploadFileOnAmazonS3Response != null) {
|
||||
if (uploadFileOnAmazonS3Response != null) {
|
||||
documentEntity.setFileName(uploadFileOnAmazonS3Response.getFileName());
|
||||
documentEntity.setFilePath(uploadFileOnAmazonS3Response.getFilePath());
|
||||
documentEntity.setType(documentTypeEnum.getValue());
|
||||
documentEntity.setSource(documentEntity.getSource());
|
||||
documentEntity.setSourceId(documentEntity.getSourceId());
|
||||
documentRepository.save(documentEntity);
|
||||
|
||||
/** This code is responsible for adding a version history log for the "updating doc or image" operation. **/
|
||||
loggingUtil.addVersionHistory(
|
||||
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldDocumentData).newData(documentEntity).build());
|
||||
}
|
||||
return callDao.convertToDocumentResponseBean(documentEntity);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user