Added logging mechanism for user actions.

This commit is contained in:
piyushkag
2024-11-20 12:03:09 +05:30
parent bab6fcfad6
commit 6eafa7b33e
26 changed files with 798 additions and 42 deletions

View File

@@ -15,10 +15,13 @@ import java.util.zip.ZipOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.entities.*;
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
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 org.h2.util.IOUtils;
@@ -95,6 +98,11 @@ public class CallDao {
@Autowired
private Validator validator;
@Autowired
private LoggingUtil loggingUtil;
@Autowired
private HttpServletRequest request;
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, UserEntity userEntity) {
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
@@ -144,7 +152,8 @@ public class CallDao {
public CallEntity convertToCallEntity(CreateCallRequestStep1 createCallRequest, UserEntity userEntity) {
CallEntity callEntity = new CallEntity();
// validateCallEntity(createCallRequest);
VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest();
// validateCallEntity(createCallRequest);
RegionEntity region = regionRepository.findById(createCallRequest.getRegionId())
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
Translator.toLocale(GepafinConstant.REGION_NOT_FOUND)));
@@ -180,6 +189,11 @@ public class CallDao {
callEntity.setEndTime(DateTimeUtil.parseTime(createCallRequest.getEndTime()));
callEntity.setHub(userEntity.getHub());
callEntity = callRepository.save(callEntity);
versionHistoryRequest.setOldData(null);
versionHistoryRequest.setNewData(callEntity);
versionHistoryRequest.setRequest(request);
versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT);
loggingUtil.addVersionHistory(versionHistoryRequest);
return callEntity;
}
@@ -197,7 +211,15 @@ public class CallDao {
List<EvaluationCriteriaEntity> evaluationCriteriaEntities = criteriaReqList.stream()
.map(req -> convertToEvaluationCriteriaEntity(req, callEntity, type)).collect(Collectors.toList());
evaluationCriteriaRepository.saveAll(evaluationCriteriaEntities);
List<EvaluationCriteriaEntity> data = evaluationCriteriaRepository.saveAll(evaluationCriteriaEntities);
data.forEach(entity -> {
VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest();
versionHistoryRequest.setOldData(null);
versionHistoryRequest.setNewData(entity);
versionHistoryRequest.setRequest(request);
versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT);
loggingUtil.addVersionHistory(versionHistoryRequest);
});
return evaluationCriteriaEntities;
}
@@ -394,6 +416,7 @@ public class CallDao {
private List<LookUpDataResponse> createCallTargetAudienceCheckList(CallEntity callEntity,
List<LookUpDataEntity> lookUpDataEntities) {
List<LookUpDataResponse> lookUpDataResponses = new ArrayList<>();
VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest();
for (LookUpDataEntity lookUpDataEntity : lookUpDataEntities) {
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity = new CallTargetAudienceChecklistEntity();
callTargetAudienceChecklistEntity.setIsValidated(false);
@@ -402,6 +425,11 @@ public class CallDao {
callTargetAudienceChecklistEntity.setIsDeleted(false);
callTargetAudienceChecklistEntity = callTargetAudienceChecklistRepository
.save(callTargetAudienceChecklistEntity);
versionHistoryRequest.setOldData(null);
versionHistoryRequest.setNewData(callTargetAudienceChecklistEntity);
versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT);
versionHistoryRequest.setRequest(request);
loggingUtil.addVersionHistory(versionHistoryRequest);
lookUpDataResponses.add(convertToLookUpDataResponseBean(callTargetAudienceChecklistEntity));
}
return lookUpDataResponses;

View File

@@ -1,20 +1,24 @@
package net.gepafin.tendermanagement.dao;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.CallEntity;
import net.gepafin.tendermanagement.entities.FaqEntity;
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.enums.RoleStatusEnum;
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
import net.gepafin.tendermanagement.model.request.FaqReq;
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
import net.gepafin.tendermanagement.repositories.FaqRepository;
import net.gepafin.tendermanagement.service.CallService;
import net.gepafin.tendermanagement.service.CompanyService;
import net.gepafin.tendermanagement.service.LookUpDataService;
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;
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
@@ -45,10 +49,16 @@ public class FaqDao {
@Autowired
private CompanyService companyService;
@Autowired
HttpServletRequest request;
@Autowired
LoggingUtil loggingUtil;
public FaqResponseBean createFaq(FaqReq faqRequest, UserEntity userEntity, Long callId, Long companyId) {
CallEntity callEntity = callService.validateCall(callId);
FaqEntity entity = createOrUpdateFaqEntity(faqRequest, callEntity, userEntity,
LookUpDataEntity.LookUpDataTypeEnum.FAQ);
LookUpDataTypeEnum.FAQ);
if (validator.checkIsBeneficiary() && companyId == null) {
throw new CustomValidationException(Status.VALIDATION_ERROR,
Translator.toLocale(GepafinConstant.COMPANY_ID_MANDATORY));
@@ -68,7 +78,7 @@ public class FaqDao {
public FaqResponseBean updateFaq(Long id, FaqReq faqRequest, UserEntity userEntity) {
FaqEntity entity = validateFaq(id);
faqRequest.setId(entity.getId());
createOrUpdateFaqEntity(faqRequest, entity.getCall(), userEntity, LookUpDataEntity.LookUpDataTypeEnum.FAQ);
createOrUpdateFaqEntity(faqRequest, entity.getCall(), userEntity, LookUpDataTypeEnum.FAQ);
return convertToFaqResponseBean(entity);
}
@@ -93,10 +103,13 @@ public class FaqDao {
public FaqEntity createOrUpdateFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity,
LookUpDataTypeEnum type) {
FaqEntity faqEntity = null;
FaqEntity oldFaqData = null;
VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest();
if (isExistingFaq(faqReq)) {
faqEntity = faqRepository.findByIdAndCallIdAndIsDeletedFalse(faqReq.getId(), callEntity.getId())
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
oldFaqData = Utils.getClonedEntityForData(faqEntity);
} else {
if (Boolean.FALSE.equals(userEntity.getRoleEntity().getRoleType().equals(RoleStatusEnum.ROLE_BENEFICIARY.getValue()))) {
lookUpDataService.getOrCreateLookUpDataEntity(faqReq, type);
@@ -115,7 +128,13 @@ public class FaqDao {
setIfUpdated(faqEntity::getValue, faqEntity::setValue, faqReq.getValue());
setIfUpdated(faqEntity::getResponse, faqEntity::setResponse, faqReq.getResponse());
setIfUpdated(faqEntity::getIsVisible, faqEntity::setIsVisible, faqReq.getIsVisible());
return faqRepository.save(faqEntity);
FaqEntity newFaqData = faqRepository.save(faqEntity);
versionHistoryRequest.setOldData(oldFaqData);
versionHistoryRequest.setNewData(newFaqData);
versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT);
versionHistoryRequest.setRequest(request);
loggingUtil.addVersionHistory(versionHistoryRequest);
return newFaqData;
}
private boolean isExistingFaq(FaqReq faqReq) {

View File

@@ -1,11 +1,17 @@
package net.gepafin.tendermanagement.dao;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
import net.gepafin.tendermanagement.repositories.LookUpDataRepository;
import net.gepafin.tendermanagement.util.LoggingUtil;
import net.gepafin.tendermanagement.util.Utils;
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
@@ -25,6 +31,12 @@ public class LookUpDataDao {
@Autowired
private LookUpDataRepository lookUpDataRepository;
@Autowired
HttpServletRequest request;
@Autowired
LoggingUtil loggingUtil;
public LookUpDataResponseBean createLookUpData(LookUpDataRequest lookUpDataReq) {
LookUpDataEntity entity = convertLookUpDataReqToLookUpDataEntity(lookUpDataReq);
return convertLookUpDataEntityToResponseBean(entity);
@@ -87,18 +99,25 @@ public class LookUpDataDao {
.map(this::convertLookUpDataEntityToResponseBean)
.collect(Collectors.toList());
}
public LookUpDataEntity getOrCreateLookUpDataEntity(LookUpDataReq req,
LookUpDataEntity.LookUpDataTypeEnum type) {
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0l)) {
LookUpDataEntity newEntity = new LookUpDataEntity();
newEntity.setTitle(req.getTitle());
newEntity.setValue(req.getValue());
newEntity.setResponse(req.getResponse());
newEntity.setType(type.getValue());
validateLookUpDataEntity(newEntity);
return lookUpDataRepository.save(newEntity);
}
public LookUpDataEntity getOrCreateLookUpDataEntity(LookUpDataReq req, LookUpDataEntity.LookUpDataTypeEnum type) {
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0L)) {
LookUpDataEntity newEntity = new LookUpDataEntity();
VersionHistoryRequest versionHistoryRequest = new VersionHistoryRequest();
newEntity.setTitle(req.getTitle());
newEntity.setValue(req.getValue());
newEntity.setResponse(req.getResponse());
newEntity.setType(type.getValue());
validateLookUpDataEntity(newEntity);
LookUpDataEntity lookUpDataEntity = lookUpDataRepository.save(newEntity);
versionHistoryRequest.setOldData(null);
versionHistoryRequest.setNewData(lookUpDataEntity);
versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT);
versionHistoryRequest.setRequest(request);
loggingUtil.addVersionHistory(versionHistoryRequest);
return lookUpDataEntity;
}
return lookUpDataRepository.findById(req.getLookUpDataId())
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,

View File

@@ -94,13 +94,14 @@ public class UserDao {
log.info("User created with ID: {}", userEntity.getId());
LoginReq loginReq=new LoginReq();
loginReq.setEmail(userEntity.getEmail());
LoginAttemptEntity loginAttemptEntity = null;
if(userEntity!=null){
LoginAttemptEntity loginAttemptEntity =authenticationService.prepareLoginAttemptEntity(loginReq, request);
loginAttemptEntity = authenticationService.prepareLoginAttemptEntity(loginReq, request);
log.info("Authentication failed for email: {}", loginReq.getEmail());
loginAttemptEntity.setUserId(userEntity.getId());
authenticationService.createSuccessLoginAttempt(loginAttemptEntity);
}
return authService.getJWTTokenBean(userEntity, Boolean.TRUE);
return authService.getJWTTokenBean(userEntity, Boolean.TRUE, loginAttemptEntity.getId());
}
private BeneficiaryEntity createBeneficiary(RoleEntity roleEntity, UserReq userReq, HubEntity hub) {