diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java index d685796f..45e0ab08 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java @@ -11,14 +11,12 @@ import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.entities.*; import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum; import net.gepafin.tendermanagement.enums.*; -import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequest; -import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequestBean; -import net.gepafin.tendermanagement.model.request.ApplicationFormFieldRequestBean; -import net.gepafin.tendermanagement.model.request.CloseAmendmentRequest; +import net.gepafin.tendermanagement.model.request.*; import net.gepafin.tendermanagement.model.response.*; import net.gepafin.tendermanagement.repositories.*; import net.gepafin.tendermanagement.service.*; import net.gepafin.tendermanagement.util.DateTimeUtil; +import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.util.Utils; import net.gepafin.tendermanagement.util.Validator; import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; @@ -97,6 +95,12 @@ public class ApplicationAmendmentRequestDao { @Autowired private Validator validator; + @Autowired + LoggingUtil loggingUtil; + + @Autowired + private HttpServletRequest request; + public ApplicationAmendmentRequestResponse getApplicationDataForAmendment(Long applicationEvaluationId) { log.info("Fetching the application data for the Amendment process {}", applicationEvaluationId); ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(applicationEvaluationId); @@ -234,25 +238,42 @@ public class ApplicationAmendmentRequestDao { applicationEvaluationEntity.getAssignedApplicationsEntity().getApplication(), protocolNumber, userEntity.getHub().getId()); applicationAmendmentRequestEntity.setProtocol(protocolEntity); - ApplicationAmendmentRequestEntity applicationAmendment = saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity); + ApplicationAmendmentRequestEntity applicationAmendment = saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity,null,VersionActionTypeEnum.INSERT); //Set Status + ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(applicationEvaluationEntity); applicationEvaluationEntity.setStatus(ApplicationEvaluationStatusTypeEnum.SOCCORSO.getValue()); applicationEvaluationRepository.save(applicationEvaluationEntity); + /** This code is responsible for adding a version history log for the "Update Application Evaluation" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEvaluationEntity).newData(applicationEvaluationEntity).build()); + + ApplicationEntity applicationEntity = applicationService.validateApplication(applicationId); + ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity); applicationEntity.setStatus(ApplicationStatusTypeEnum.SOCCORSO.getValue()); applicationRepository.save(applicationEntity); + /** This code is responsible for adding a version history log for the "Update Application" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(applicationEntity).build()); + AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsService.validateAssignedApplication(assignedApplicationId); + AssignedApplicationsEntity oldAssignedApplication = Utils.getClonedEntityForData(assignedApplicationsEntity); assignedApplicationsEntity.setStatus(AssignedApplicationEnum.SOCCORSO.getValue()); assignedApplicationsRepository.save(assignedApplicationsEntity); + /** This code is responsible for adding a version history log for the "Update Assigned Application" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldAssignedApplication).newData(assignedApplicationsEntity).build()); + return applicationAmendment; } - public ApplicationAmendmentRequestEntity saveApplicationAmendmentRequestEntity(ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity) { + public ApplicationAmendmentRequestEntity saveApplicationAmendmentRequestEntity(ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity,ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity,VersionActionTypeEnum actionTypeEnum) { ApplicationAmendmentRequestEntity applicationAmendmentRequest = applicationAmendmentRequestRepository.save(applicationAmendmentRequestEntity); + + /** This code is responsible for adding a version history log for the "Create Application Amendment" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionTypeEnum).oldData(oldApplicationAmendmentEntity).newData(applicationAmendmentRequestEntity).build()); + return applicationAmendmentRequest; } @@ -391,8 +412,9 @@ public class ApplicationAmendmentRequestDao { public void deleteById(Long id) { log.info("Deleting assigned application with ID: {}", id); ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = validateApplicationAmendmentRequest(id); + ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(applicationAmendmentRequestEntity); applicationAmendmentRequestEntity.setIsDeleted(true); - saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity); + saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity,oldApplicationAmendmentEntity,VersionActionTypeEnum.SOFT_DELETE); log.info(" Application amendment deleted with ID: {}", id); } @@ -440,6 +462,7 @@ public class ApplicationAmendmentRequestDao { log.info("Updating application amendement with ID: {}", id); ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(id); + ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(existingApplicationAmendment); setIfUpdated(existingApplicationAmendment::getNote, existingApplicationAmendment::setNote, updateRequest.getNote()); if (updateRequest.getApplicationFormFields() != null) { updateApplicationFormFields(existingApplicationAmendment, updateRequest.getApplicationFormFields()); @@ -447,7 +470,7 @@ public class ApplicationAmendmentRequestDao { } existingApplicationAmendment.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); - ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment); + ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment,oldApplicationAmendmentEntity,VersionActionTypeEnum.UPDATE); ApplicationAmendmentRequestResponse response = convertEntityToResponse(updatedApplicationAmendment); log.info("Application Amendment updated successfully: {}", response); return response; @@ -641,11 +664,11 @@ public class ApplicationAmendmentRequestDao { public ApplicationAmendmentRequestResponse closeAmendmentRequest(Long id, CloseAmendmentRequest closeAmendmentRequest) { log.info("Closing application amendement with ID: {}", id); ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(id); - + ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(existingApplicationAmendment); setIfUpdated(existingApplicationAmendment::getInternalNote, existingApplicationAmendment::setInternalNote, closeAmendmentRequest.getInternalNote()); setIfUpdated(existingApplicationAmendment::getStatus, existingApplicationAmendment::setStatus, ApplicationAmendmentRequestEnum.CLOSE.getValue()); - ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment); + ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment,oldApplicationAmendmentEntity,VersionActionTypeEnum.UPDATE); ApplicationAmendmentRequestResponse response = convertEntityToResponse(updatedApplicationAmendment); List amendmentRequests = applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndIsDeletedFalse(existingApplicationAmendment.getApplicationEvaluationEntity().getId()); @@ -653,8 +676,13 @@ public class ApplicationAmendmentRequestDao { .allMatch(amendment -> amendment.getStatus().equals(ApplicationAmendmentRequestEnum.CLOSE.getValue())); if (allClosed) { - existingApplicationAmendment.getApplicationEvaluationEntity().setStatus(ApplicationEvaluationStatusTypeEnum.OPEN.getValue()); + ApplicationEvaluationEntity existingApplicationEvaluationEntity = existingApplicationAmendment.getApplicationEvaluationEntity(); + ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(existingApplicationEvaluationEntity); + existingApplicationEvaluationEntity.setStatus(ApplicationEvaluationStatusTypeEnum.OPEN.getValue()); applicationEvaluationRepository.save(existingApplicationAmendment.getApplicationEvaluationEntity()); + + /** This code is responsible for adding a version history log for the "Update Application Evaluation" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEvaluationEntity).newData(existingApplicationEvaluationEntity).build()); log.info("All amendments are closed. Application Evaluation status set to OPEN."); } log.info("Application Amendment closed successfully: {}", response); @@ -662,16 +690,21 @@ public class ApplicationAmendmentRequestDao { } public ApplicationAmendmentRequestResponse extendResponseDays(Long id, Long newResponseDays) { - ApplicationAmendmentRequestEntity request = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id) + ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id) .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG))); if (newResponseDays != null && newResponseDays > 0) { - Long currentResponseDays = request.getResponseDays() != null ? request.getResponseDays() : 0L; - request.setResponseDays(currentResponseDays + newResponseDays); - applicationAmendmentRequestRepository.save(request); + ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(applicationAmendmentRequestEntity); + Long currentResponseDays = applicationAmendmentRequestEntity.getResponseDays() != null ? applicationAmendmentRequestEntity.getResponseDays() : 0L; + applicationAmendmentRequestEntity.setResponseDays(currentResponseDays + newResponseDays); + applicationAmendmentRequestRepository.save(applicationAmendmentRequestEntity); + + /** This code is responsible for adding a version history log for the "Update Application Amendment" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationAmendmentEntity).newData(applicationAmendmentRequestEntity).build()); + } - return convertEntityToResponse(request); + return convertEntityToResponse(applicationAmendmentRequestEntity); } public List getAmendmentByApplicationId(HttpServletRequest request, Long applicationId, List statuses) { @@ -707,10 +740,14 @@ public class ApplicationAmendmentRequestDao { log.info("Updating application amendement with status: {}", id); ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(id); + ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(existingApplicationAmendment); if (Boolean.TRUE.equals(existingApplicationAmendment.getStatus().equals(ApplicationAmendmentRequestEnum.AWAITING.getValue())) && Boolean.TRUE.equals(statusTypeEnum.equals(ApplicationAmendmentRequestEnum.RESPONSE_RECEIVED))) { existingApplicationAmendment.setStatus(ApplicationAmendmentRequestEnum.RESPONSE_RECEIVED.getValue()); existingApplicationAmendment.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); applicationAmendmentRequestRepository.save(existingApplicationAmendment); + + /** This code is responsible for adding a version history log for the "Update Application Amendment" operation. **/ + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationAmendmentEntity).newData(existingApplicationAmendment).build()); } ApplicationAmendmentRequestResponse response = convertEntityToResponse(existingApplicationAmendment); log.info("Amendment status updated successfully: {}", response); diff --git a/src/main/java/net/gepafin/tendermanagement/enums/UserActionContextEnum.java b/src/main/java/net/gepafin/tendermanagement/enums/UserActionContextEnum.java index 0864ac4d..d19d9d33 100644 --- a/src/main/java/net/gepafin/tendermanagement/enums/UserActionContextEnum.java +++ b/src/main/java/net/gepafin/tendermanagement/enums/UserActionContextEnum.java @@ -73,6 +73,19 @@ public enum UserActionContextEnum { GET_ALL_HUB("GET_ALL_HUB"), GET_HUB_BY_UUID(" GET_HUB_BY_UUID"), + /** amendment action context **/ + CREATE_AMENDMENT("CREATE_AMENDMENT"), + GET_AMENDMENT(" GET_AMENDMENT"), + CLOSE_AMENDMENT("CLOSE_AMENDMENT"), + UPDATE_AMENDMENT("UPDATE_AMENDMENT"), + DELETE_AMENDMENT("DELETE_AMENDMENT"), + UPDATE_AMENDMENT_STATUS("UPDATE_AMENDMENT_STATUS"), + GET_ALL_AMENDMENT_BY_PREINSTRUCTOR_USER_ID("GET_AMENDMENT_BY_PREINSTRUCTOR_USER_ID"), + GET_ALL_AMENDMENT_BY_BENEFICIARY_USER_ID("GET_AMENDMENT_BY_BENEFICIARY_USER_ID"), + GET_AMENDMENT_BY_APPLICATION_ID("GET_AMENDMENT_BY_APPLICATION_ID"), + EXTEND_RESPONSE_DAYS_FOR_AMENDMENT("EXTEND_RESPONSE_DAYS_FOR_AMENDMENT"), + GET_APPLICATION_DATA_FOR_AMENDMENT("GET_APPLICATION_DATA_FOR_AMENDMENT"), + /** Application Evaluation action context **/ CREATE_UPDATE_APPLICATION_EVALUATION("CREATE_UPDATE_APPLICATION_EVALUATION"), GET_APPLICATION_EVALUATION("GET_APPLICATION_EVALUATION"), diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java index bd66efd1..d4707511 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationAmendmentRequestController.java @@ -5,13 +5,16 @@ import lombok.extern.log4j.Log4j2; import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.enums.ApplicationAmendmentRequestEnum; -import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum; +import net.gepafin.tendermanagement.enums.UserActionContextEnum; +import net.gepafin.tendermanagement.enums.UserActionLogsEnum; import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequest; import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequestBean; import net.gepafin.tendermanagement.model.request.CloseAmendmentRequest; +import net.gepafin.tendermanagement.model.request.UserActionRequest; import net.gepafin.tendermanagement.model.response.ApplicationAmendmentRequestResponse; import net.gepafin.tendermanagement.model.util.Response; import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService; +import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.web.rest.api.ApplicationAmendmentRequestApi; import net.gepafin.tendermanagement.web.rest.api.errors.Status; import org.springframework.beans.factory.annotation.Autowired; @@ -29,8 +32,16 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Autowired ApplicationAmendmentRequestService applicationAmendmentRequestService; + @Autowired + LoggingUtil loggingUtil; + @Override public ResponseEntity> getApplicationDataForAmendment(HttpServletRequest request, Long applicationEvaluationId) { + + /** This code is responsible for creating user action logs for the "get application data for amendment" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW) + .actionContext(UserActionContextEnum.GET_APPLICATION_DATA_FOR_AMENDMENT).build()); + ApplicationAmendmentRequestResponse applicationAmendmentBean = applicationAmendmentRequestService.getApplicationDataForAmendment(request,applicationEvaluationId); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applicationAmendmentBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_DATA_FOR_AMENDMENT_SUCCESS_MSG))); @@ -38,6 +49,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity> createApplicationAmendmentRequest(HttpServletRequest request, Long applicationEvaluationId, ApplicationAmendmentRequest applicationAmendmentRequest) { + + /** This code is responsible for creating user action logs for the "Create Application Amendment" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT) + .actionContext(UserActionContextEnum.CREATE_AMENDMENT).build()); + ApplicationAmendmentRequestResponse applicationAmendmentRequestResponse = applicationAmendmentRequestService.createApplicationAmendmentRequest(request,applicationEvaluationId,applicationAmendmentRequest); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applicationAmendmentRequestResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.CREATE_APPLICATION_DATA_FOR_AMENDMENT_MSG))); @@ -46,6 +62,10 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity> deleteApplicationAmendmentRequest(HttpServletRequest request, Long id) { log.info("Delete Application Amendment Request- Application Amendment ID: {}", id); + + /** This code is responsible for creating user action logs for the "Delete Amendment" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_AMENDMENT).build()); + applicationAmendmentRequestService.deleteApplicationAmendmentRequest(request,id); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_APPLICATION_AMENDMENT_SUCCESS_MSG))); @@ -54,6 +74,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity> getApplicationAmendmentRequestById(HttpServletRequest request,Long id) { log.info("Get Application Amendment Request By Id"); + + /** This code is responsible for creating user action logs for the "get application amendment by id" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW) + .actionContext(UserActionContextEnum.GET_AMENDMENT).build()); + ApplicationAmendmentRequestResponse applicationAmendmentRequestResponse = applicationAmendmentRequestService.getApplicationAmendmentRequestById(request,id); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applicationAmendmentRequestResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG))); @@ -62,6 +87,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity>> getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId) { log.info("Get All Applications Amendment Request"); + + /** This code is responsible for creating user action logs for the "get all application amendment by preInstructor user id" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW) + .actionContext(UserActionContextEnum.GET_ALL_AMENDMENT_BY_PREINSTRUCTOR_USER_ID).build()); + List applicationAmendmentRequestResponses = applicationAmendmentRequestService.getAllApplicationAmendmentRequest(request,userId); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applicationAmendmentRequestResponses, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG))); @@ -70,6 +100,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity> updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean) { log.info("Update Application Amendment"); + + /** This code is responsible for "Updating Amendment" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE) + .actionContext(UserActionContextEnum.UPDATE_AMENDMENT).build()); + ApplicationAmendmentRequestResponse updateApplicationAmendment = applicationAmendmentRequestService.updateApplicationAmendment(request, id, applicationAmendmentRequestBean); return ResponseEntity.status(HttpStatus.CREATED) .body(new Response<>(updateApplicationAmendment, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG))); @@ -78,6 +113,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity>> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request, Long beneficiaryId) { log.info("Get All Application Amendment Request By Beneficiary ID"); + + /** This code is responsible for creating user action logs for the "get all application amendment by beneficiary user id" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW) + .actionContext(UserActionContextEnum.GET_ALL_AMENDMENT_BY_BENEFICIARY_USER_ID).build()); + List applicationAmendmentRequestResponseList = applicationAmendmentRequestService.getAllAmendmentRequestByBeneficiaryId(request, beneficiaryId); return ResponseEntity.status(HttpStatus.CREATED) .body(new Response<>(applicationAmendmentRequestResponseList, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG))); @@ -86,6 +126,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity> closeApplicationAmendmentRequest(HttpServletRequest request, Long id, CloseAmendmentRequest closeAmendmentRequest) { log.info("Closing Amendment Request"); + + /** This code is responsible for "Close Amendment" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE) + .actionContext(UserActionContextEnum.CLOSE_AMENDMENT).build()); + ApplicationAmendmentRequestResponse amendmentRequestResponse = applicationAmendmentRequestService.closeAmendmentRequest(request, id,closeAmendmentRequest); return ResponseEntity.status(HttpStatus.CREATED) .body(new Response<>(amendmentRequestResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_CLOSED_SUCCESFULLY))); @@ -99,6 +144,10 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme log.info("Extending response days for Amendment Request ID: {}", id); + /** This code is responsible for "Extend Response Days for Amendment" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE) + .actionContext(UserActionContextEnum.EXTEND_RESPONSE_DAYS_FOR_AMENDMENT).build()); + ApplicationAmendmentRequestResponse response = applicationAmendmentRequestService.extendResponseDays(request, id, addedDays); return ResponseEntity.status(HttpStatus.OK) @@ -106,6 +155,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme } @Override public ResponseEntity>> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId,List statuses) { + + /** This code is responsible for creating user action logs for the "get all application amendment by application id" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW) + .actionContext(UserActionContextEnum.GET_AMENDMENT_BY_APPLICATION_ID).build()); + List applicationAmendmentBean = applicationAmendmentRequestService.getAmendmentByApplicationId(request,applicationId,statuses); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applicationAmendmentBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_DATA_FOR_AMENDMENT_SUCCESS_MSG))); @@ -113,6 +167,10 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme @Override public ResponseEntity> updateApplicationAmendmentStatus(HttpServletRequest request, Long applicationAmendmentId, ApplicationAmendmentRequestEnum status) { + /** This code is responsible for "Updating Amendment Status" operation. **/ + loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE) + .actionContext(UserActionContextEnum.UPDATE_AMENDMENT_STATUS).build()); + ApplicationAmendmentRequestResponse applicationResponse = applicationAmendmentRequestService.updateApplicationAmendmentStatus(request, applicationAmendmentId, status); return ResponseEntity.status(HttpStatus.OK) .body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG)));