Added audit for lookupData and Hub

This commit is contained in:
rajesh
2024-11-24 16:46:56 +05:30
parent 6c37713e50
commit edafc797dc
7 changed files with 136 additions and 24 deletions

View File

@@ -1,12 +1,17 @@
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.HubEntity;
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
import net.gepafin.tendermanagement.model.request.HubReq;
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
import net.gepafin.tendermanagement.model.response.HubResponseBean;
import net.gepafin.tendermanagement.model.util.NanoIdUtils;
import net.gepafin.tendermanagement.repositories.HubRepository;
import net.gepafin.tendermanagement.util.LoggingUtil;
import net.gepafin.tendermanagement.util.Utils;
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,15 +27,26 @@ public class HubDao {
@Autowired
private HubRepository hubRepository;
public HubResponseBean createHub(HubReq hubReq) {
@Autowired
private LoggingUtil loggingUtil;
public HubResponseBean createHub(HttpServletRequest request,HubReq hubReq) {
HubEntity hubEntity = createOrUpdateHubEntity(new HubEntity(), hubReq);
hubRepository.save(hubEntity);
/** This code is responsible for adding a version history log for the "Create Hub" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(hubEntity).build());
return convertToHubResponseBean(hubEntity);
}
public HubResponseBean updateHub(Long hubId, HubReq hubReq) {
public HubResponseBean updateHub(HttpServletRequest request,Long hubId, HubReq hubReq) {
HubEntity hubEntity = validateHub(hubId);
createOrUpdateHubEntity(hubEntity, hubReq);
HubEntity oldHubEntity = Utils.getClonedEntityForData(hubEntity);
HubEntity newHubEntity = createOrUpdateHubEntity(hubEntity, hubReq);
/** This code is responsible for adding a version history log for the "Update Hub" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldHubEntity).newData(newHubEntity).build());
return convertToHubResponseBean(hubEntity);
}
@@ -43,10 +59,13 @@ public class HubDao {
return hubs.stream().map(this::convertToHubResponseBean).toList();
}
public void deleteHub(Long hubId) {
public void deleteHub(HttpServletRequest request,Long hubId) {
HubEntity hubEntity = validateHub(hubId);
/** This code is responsible for adding a version history log for the "Delete Hub" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(hubEntity).build());
hubRepository.deleteById(hubId);
hubRepository.save(hubEntity);
}
public HubEntity validateHub(Long hubId) {

View File

@@ -3,7 +3,6 @@ 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;
@@ -49,6 +48,9 @@ public class LookUpDataDao {
entity.setValue(lookUpDataReq.getResponse());
validateLookUpDataEntity(entity);
lookUpDataRepository.save(entity);
/** This code is responsible for adding a version history log for the "Create LoopUpData" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(entity).build());
return entity;
}
@@ -69,16 +71,27 @@ public class LookUpDataDao {
public LookUpDataResponseBean updateLookUpData(Long id, LookUpDataRequest lookUpDataReq) {
LookUpDataEntity entity = validateLookUpData(id);
LookUpDataEntity oldLookUpData = Utils.getClonedEntityForData(entity);
setIfUpdated(entity::getTitle, entity::setTitle, lookUpDataReq.getTitle());
setIfUpdated(entity::getValue, entity::setValue, lookUpDataReq.getValue());
setIfUpdated(entity::getResponse, entity::setResponse, lookUpDataReq.getResponse());
lookUpDataRepository.save(entity);
/** This code is responsible for adding a version history log for the "Update LookUpData" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldLookUpData).newData(entity).build());
return convertLookUpDataEntityToResponseBean(entity);
}
public void deleteLookUpData(Long id) {
LookUpDataEntity entity = validateLookUpData(id);
lookUpDataRepository.deleteById(entity.getId());
LookUpDataEntity oldLookUpData = validateLookUpData(id);
/** This code is responsible for adding a version history log for the "Delete LookUpData" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(oldLookUpData).build());
lookUpDataRepository.deleteById(id);
}
private LookUpDataResponseBean convertLookUpDataEntityToResponseBean(LookUpDataEntity entity) {

View File

@@ -45,6 +45,21 @@ public enum UserActionContextEnum {
UPDATE_FAQ_DETAILS("UPDATE_FAQ_DETAILS"),
DELETE_FAQ("DELETE_FAQ"),
/** LookUpData action context **/
CREATE_LOOKUP_DATA("CREATE_LOOKUP_DATA"),
DELETE_LOOKUP_DATA("DELETE_LOOKUP_DATA"),
UPDATE_LOOKUP_DATA("UPDATE_LOOKUP_DATA"),
GET_LOOKUP_DATA("GET_LOOKUP_DATA"),
GET_LOOKUP_DATA_BY_TYPE("GET_LOOKUP_DATA_BY_TYPE"),
/** Hub action context **/
CREATE_HUB("CREATE_HUB"),
GET_HUB("GET_HUB"),
DELETE_HUB("DELETE_HUB"),
UPDATE_HUB("UPDATE_HUB"),
GET_ALL_HUB("GET_ALL_HUB"),
GET_HUB_BY_UUID(" GET_HUB_BY_UUID"),
/** Assigned Application action context **/
CREATE_ASSIGNED_APPLICATION("CREATE_ASSIGNED_APPLICATION"),
DELETE_ASSIGNED_APPLICATION("DELETE_ASSIGNED_APPLICATION"),

View File

@@ -1,6 +1,7 @@
package net.gepafin.tendermanagement.service;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.entities.HubEntity;
import net.gepafin.tendermanagement.model.request.HubReq;
import net.gepafin.tendermanagement.model.response.HubResponseBean;
@@ -8,11 +9,11 @@ import net.gepafin.tendermanagement.model.response.HubResponseBean;
import java.util.List;
public interface HubService {
HubResponseBean createHub(HubReq hubReq);
HubResponseBean updateHub(Long hubId, HubReq hubReq);
HubResponseBean createHub(HttpServletRequest request,HubReq hubReq);
HubResponseBean updateHub(HttpServletRequest request,Long hubId, HubReq hubReq);
HubResponseBean getHubById(Long hubId);
List<HubResponseBean> getAllHubs();
void deleteHub(Long hubId);
void deleteHub(HttpServletRequest request,Long hubId);
HubEntity getHubByUuid(String hubUuid);
HubResponseBean getHubByHubUuid(String uuid);
HubEntity valdateHub(Long hubId);

View File

@@ -1,5 +1,6 @@
package net.gepafin.tendermanagement.service.impl;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.dao.HubDao;
import net.gepafin.tendermanagement.entities.HubEntity;
import net.gepafin.tendermanagement.model.request.HubReq;
@@ -19,14 +20,14 @@ public class HubServiceImpl implements HubService {
@Override
@Transactional(rollbackFor = Exception.class)
public HubResponseBean createHub(HubReq hubReq) {
return hubDao.createHub(hubReq);
public HubResponseBean createHub(HttpServletRequest request,HubReq hubReq) {
return hubDao.createHub(request,hubReq);
}
@Override
@Transactional(rollbackFor = Exception.class)
public HubResponseBean updateHub(Long hubId, HubReq hubReq) {
return hubDao.updateHub(hubId, hubReq);
public HubResponseBean updateHub(HttpServletRequest request,Long hubId, HubReq hubReq) {
return hubDao.updateHub(request,hubId, hubReq);
}
@Override
@@ -43,8 +44,8 @@ public class HubServiceImpl implements HubService {
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteHub(Long hubId) {
hubDao.deleteHub(hubId);
public void deleteHub(HttpServletRequest request,Long hubId) {
hubDao.deleteHub(request,hubId);
}
@Override

View File

@@ -4,10 +4,14 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
import net.gepafin.tendermanagement.model.request.HubReq;
import net.gepafin.tendermanagement.model.request.UserActionRequest;
import net.gepafin.tendermanagement.model.response.HubResponseBean;
import net.gepafin.tendermanagement.model.util.Response;
import net.gepafin.tendermanagement.service.HubService;
import net.gepafin.tendermanagement.util.LoggingUtil;
import net.gepafin.tendermanagement.web.rest.api.HubApi;
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
@@ -24,17 +28,29 @@ public class HubApiController implements HubApi {
@Autowired
private HubService hubService;
@Autowired
private LoggingUtil loggingUtil;
@Override
public ResponseEntity<Response<HubResponseBean>> createHub(HttpServletRequest request, @Valid HubReq hubReq) {
HubResponseBean hubResponse = hubService.createHub(hubReq);
/** This code is responsible for creating user action logs for the "Create Hub" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT)
.actionContext(UserActionContextEnum.CREATE_HUB).build());
HubResponseBean hubResponse = hubService.createHub(request,hubReq);
return ResponseEntity.status(HttpStatus.CREATED)
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_CREATE_SUCCESS)));
}
@Override
public ResponseEntity<Response<HubResponseBean>> updateHub(HttpServletRequest request, Long hubId, @Valid HubReq hubReq) {
HubResponseBean hubResponse = hubService.updateHub(hubId, hubReq);
/** This code is responsible for "Updating Hub details" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
.actionContext(UserActionContextEnum.UPDATE_HUB).build());
HubResponseBean hubResponse = hubService.updateHub(request,hubId, hubReq);
return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_UPDATE_SUCCESS)));
@@ -42,7 +58,11 @@ public class HubApiController implements HubApi {
@Override
public ResponseEntity<Response<HubResponseBean>> getHubById(HttpServletRequest request, Long hubId) {
/** This code is responsible for creating user action logs for the "get hub by id" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
.actionContext(UserActionContextEnum.GET_HUB).build());
HubResponseBean hubResponse = hubService.getHubById(hubId);
return ResponseEntity.status(HttpStatus.OK)
@@ -51,7 +71,11 @@ public class HubApiController implements HubApi {
@Override
public ResponseEntity<Response<List<HubResponseBean>>> getAllHubs(HttpServletRequest request) {
/** This code is responsible for creating user action logs for the "get all hub" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
.actionContext(UserActionContextEnum.GET_ALL_HUB).build());
List<HubResponseBean> hubs = hubService.getAllHubs();
return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(hubs, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_GET_ALL_SUCCESS)));
@@ -59,13 +83,21 @@ public class HubApiController implements HubApi {
@Override
public ResponseEntity<Response<Void>> deleteHub(HttpServletRequest request, Long hubId) {
hubService.deleteHub(hubId);
/** This code is responsible for creating user action logs for the "Delete Hub" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_HUB).build());
hubService.deleteHub(request,hubId);
return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_DELETE_SUCCESS)));
}
@Override
public ResponseEntity<Response<HubResponseBean>> getHubByUuid(HttpServletRequest request, String uuid) {
/** This code is responsible for creating user action logs for the "get hub by uuid" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
.actionContext(UserActionContextEnum.GET_HUB_BY_UUID).build());
HubResponseBean hubResponse = hubService.getHubByHubUuid(uuid);
return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_GET_SUCCESS)));

View File

@@ -4,10 +4,14 @@ import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
import net.gepafin.tendermanagement.model.request.UserActionRequest;
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
import net.gepafin.tendermanagement.model.util.Response;
import net.gepafin.tendermanagement.service.LookUpDataService;
import net.gepafin.tendermanagement.util.LoggingUtil;
import net.gepafin.tendermanagement.web.rest.api.LookUpDataApi;
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,8 +29,16 @@ public class LookUpDataApiController implements LookUpDataApi {
@Autowired
private LookUpDataService lookUpDataService;
@Autowired
LoggingUtil loggingUtil;
@Override
public ResponseEntity<Response<LookUpDataResponseBean>> createLookUpData(HttpServletRequest request, LookUpDataRequest lookUpDataReq) {
/** This code is responsible for creating user action logs for the "Create LoopUpData" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT)
.actionContext(UserActionContextEnum.CREATE_LOOKUP_DATA).build());
LookUpDataResponseBean responseBean = lookUpDataService.createLookUpData(lookUpDataReq);
return ResponseEntity.status(HttpStatus.CREATED)
.body(new Response<LookUpDataResponseBean>(responseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOOKUP_DATA_CREATED_SUCCESSFULLY)));
@@ -34,6 +46,11 @@ public class LookUpDataApiController implements LookUpDataApi {
@Override
public ResponseEntity<Response<LookUpDataResponseBean>> getLookUpDataById(HttpServletRequest request, Long id) {
/** This code is responsible for creating user action logs for the "get lookup data by id" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
.actionContext(UserActionContextEnum.GET_LOOKUP_DATA).build());
LookUpDataResponseBean responseBean = lookUpDataService.getLookUpDataById(id);
if (responseBean != null) {
return ResponseEntity.status(HttpStatus.OK)
@@ -46,6 +63,11 @@ public class LookUpDataApiController implements LookUpDataApi {
@Override
public ResponseEntity<Response<LookUpDataResponseBean>> updateLookUpData(HttpServletRequest request, Long id, LookUpDataRequest lookUpDataReq) {
/** This code is responsible for "Updating LookUp Data details" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
.actionContext(UserActionContextEnum.UPDATE_LOOKUP_DATA).build());
LookUpDataResponseBean responseBean = lookUpDataService.updateLookUpData(id, lookUpDataReq);
if (responseBean != null) {
return ResponseEntity.status(HttpStatus.OK)
@@ -58,12 +80,21 @@ public class LookUpDataApiController implements LookUpDataApi {
@Override
public ResponseEntity<Response<Void>> deleteLookUpData(HttpServletRequest request, Long id) {
/** This code is responsible for creating user action logs for the "Delete LookUpData" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_LOOKUP_DATA).build());
lookUpDataService.deleteLookUpData(id);
return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOOKUP_DATA_DELETED_SUCCESSFULLY)));
}
@Override
public ResponseEntity<Response<List<LookUpDataResponseBean>>> getLookUpDataByType(HttpServletRequest request, List<LookUpDataTypeEnum> type) {
/** This code is responsible for creating user action logs for the "get lookup data by type" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
.actionContext(UserActionContextEnum.GET_LOOKUP_DATA_BY_TYPE).build());
List<LookUpDataResponseBean> responseBean = lookUpDataService.getLookUpDataByType(type);
if (responseBean != null) {
return ResponseEntity.status(HttpStatus.OK)