Merge pull request #107 from Kitzanos/feature/GEPAFINBE-31
GEPAFINBE-31(All action made by User must be logged)
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
package net.gepafin.tendermanagement.config;
|
||||||
|
|
||||||
|
import jakarta.servlet.Filter;
|
||||||
|
import jakarta.servlet.FilterChain;
|
||||||
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.ServletRequest;
|
||||||
|
import jakarta.servlet.ServletResponse;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class CachedBodyFilter implements Filter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||||
|
|
||||||
|
if (request instanceof HttpServletRequest httpServletRequest) {
|
||||||
|
CachedBodyHttpServletRequest cachedRequest = new CachedBodyHttpServletRequest(httpServletRequest);
|
||||||
|
chain.doFilter(cachedRequest, response);
|
||||||
|
} else {
|
||||||
|
chain.doFilter(request, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
package net.gepafin.tendermanagement.config;
|
||||||
|
|
||||||
|
import jakarta.servlet.ReadListener;
|
||||||
|
import jakarta.servlet.ServletInputStream;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletRequestWrapper;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
|
public class CachedBodyHttpServletRequest extends HttpServletRequestWrapper {
|
||||||
|
|
||||||
|
private final byte[] cachedBody;
|
||||||
|
|
||||||
|
public CachedBodyHttpServletRequest(HttpServletRequest request) throws IOException {
|
||||||
|
|
||||||
|
super(request);
|
||||||
|
InputStream requestInputStream = request.getInputStream();
|
||||||
|
this.cachedBody = requestInputStream.readAllBytes();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServletInputStream getInputStream() {
|
||||||
|
|
||||||
|
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(cachedBody);
|
||||||
|
return new ServletInputStreamWrapper(byteArrayInputStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BufferedReader getReader() throws IOException {
|
||||||
|
|
||||||
|
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(cachedBody);
|
||||||
|
return new BufferedReader(new InputStreamReader(byteArrayInputStream));
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCachedBodyAsString() {
|
||||||
|
|
||||||
|
return new String(cachedBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ServletInputStreamWrapper extends ServletInputStream {
|
||||||
|
|
||||||
|
private final ByteArrayInputStream byteArrayInputStream;
|
||||||
|
|
||||||
|
public ServletInputStreamWrapper(ByteArrayInputStream byteArrayInputStream) {
|
||||||
|
|
||||||
|
this.byteArrayInputStream = byteArrayInputStream;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int read() throws IOException {
|
||||||
|
|
||||||
|
return byteArrayInputStream.read();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isFinished() {
|
||||||
|
|
||||||
|
return byteArrayInputStream.available() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isReady() {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setReadListener(ReadListener readListener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package net.gepafin.tendermanagement.config;
|
||||||
|
|
||||||
|
import jakarta.servlet.Filter;
|
||||||
|
import jakarta.servlet.FilterChain;
|
||||||
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.ServletRequest;
|
||||||
|
import jakarta.servlet.ServletResponse;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class RequestCachingFilter implements Filter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||||
|
if (request instanceof HttpServletRequest) {
|
||||||
|
HttpServletRequest cachedRequest = new CachedBodyHttpServletRequest((HttpServletRequest) request);
|
||||||
|
chain.doFilter(cachedRequest, response);
|
||||||
|
} else {
|
||||||
|
chain.doFilter(request, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package net.gepafin.tendermanagement.config;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.servlet.http.HttpSession;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class UniqueSessionInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||||
|
|
||||||
|
request.getSession(true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
|
||||||
|
|
||||||
|
if ("/v1/user/logout".equals(request.getRequestURI())) {
|
||||||
|
HttpSession session = request.getSession(false);
|
||||||
|
if (session != null) {
|
||||||
|
session.invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ import io.jsonwebtoken.SignatureAlgorithm;
|
|||||||
import io.jsonwebtoken.security.Keys;
|
import io.jsonwebtoken.security.Keys;
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
@@ -15,6 +16,7 @@ import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
|||||||
import net.gepafin.tendermanagement.web.rest.api.errors.UnauthorizedAccessException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.UnauthorizedAccessException;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
import org.apache.http.HttpResponse;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -23,6 +25,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
|
|||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
import org.springframework.security.core.userdetails.User;
|
import org.springframework.security.core.userdetails.User;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -49,9 +52,11 @@ public class TokenProvider {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
HttpServletResponse response;
|
||||||
|
|
||||||
private SecretKey key;
|
private SecretKey key;
|
||||||
|
|
||||||
private static final String AUTHORITIES_KEY = "auth";
|
|
||||||
private static final String MERCHANTID="merchantId";
|
private static final String MERCHANTID="merchantId";
|
||||||
|
|
||||||
static final String AUTH_SECRET = "X-Api-Secret";
|
static final String AUTH_SECRET = "X-Api-Secret";
|
||||||
@@ -82,7 +87,7 @@ public class TokenProvider {
|
|||||||
log.info("JWT Secret Key initialized.");
|
log.info("JWT Secret Key initialized.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public String createToken(Boolean rememberMe, UserEntity user) {
|
public String createToken(Boolean rememberMe, UserEntity user, Long loginAttemptId) {
|
||||||
// String authorities = authentication.getAuthorities().stream()
|
// String authorities = authentication.getAuthorities().stream()
|
||||||
// .map(GrantedAuthority::getAuthority)
|
// .map(GrantedAuthority::getAuthority)
|
||||||
// .collect(Collectors.joining(","));
|
// .collect(Collectors.joining(","));
|
||||||
@@ -103,19 +108,19 @@ public class TokenProvider {
|
|||||||
String payload = user.getEmail();
|
String payload = user.getEmail();
|
||||||
if(user != null) {
|
if(user != null) {
|
||||||
payload += ":"+user.getId();
|
payload += ":"+user.getId();
|
||||||
}
|
|
||||||
|
|
||||||
if(user != null) {
|
|
||||||
payload += ":"+user.getHub().getId();
|
payload += ":"+user.getHub().getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
String token = Jwts.builder()
|
String token = Jwts.builder()
|
||||||
.setSubject(payload)
|
.setSubject(payload)
|
||||||
.claim("auth", authorities)
|
.claim(GepafinConstant.LOGIN_ATTEMPT_ID, loginAttemptId)
|
||||||
|
.claim(GepafinConstant.USER_ID, user.getId() != null ? user.getId() : null)
|
||||||
|
.claim(GepafinConstant.AUTH, authorities)
|
||||||
.signWith(key, SignatureAlgorithm.HS512)
|
.signWith(key, SignatureAlgorithm.HS512)
|
||||||
.setExpiration(validity)
|
.setExpiration(validity)
|
||||||
.compact();
|
.compact();
|
||||||
|
|
||||||
|
response.setHeader("Authorization", "Bearer " + token);
|
||||||
log.debug("Generated token: {}", token);
|
log.debug("Generated token: {}", token);
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
@@ -249,4 +254,26 @@ public class TokenProvider {
|
|||||||
return null; // Return null if token is not found or not in Bearer format
|
return null; // Return null if token is not found or not in Bearer format
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Claims getClaimsFromToken(String token) {
|
||||||
|
|
||||||
|
return Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCurrentActiveUserEmail() {
|
||||||
|
|
||||||
|
var authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||||
|
if (authentication != null && authentication.isAuthenticated()) {
|
||||||
|
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
|
||||||
|
String email = userDetails.getUsername();
|
||||||
|
int lastColonIndex = email.lastIndexOf(":");
|
||||||
|
int secondLastColonIndex = email.lastIndexOf(":", lastColonIndex - 1);
|
||||||
|
|
||||||
|
if (secondLastColonIndex != -1) {
|
||||||
|
return email.substring(0, secondLastColonIndex);
|
||||||
|
} else {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -156,7 +156,7 @@ public class GepafinConstant {
|
|||||||
public static final String IS_PIVA = "isPIVA";
|
public static final String IS_PIVA = "isPIVA";
|
||||||
public static final String FAILED_RETAIN_FIELD = "failed.retain.field";
|
public static final String FAILED_RETAIN_FIELD = "failed.retain.field";
|
||||||
public static final String USER_ALREADY_EXIST_MSG = "user.already.exist.msg";
|
public static final String USER_ALREADY_EXIST_MSG = "user.already.exist.msg";
|
||||||
public static final String TOKEN_VALIDATE_SUCCESS_MSE = "token.validate.success";
|
public static final String TOKEN_VALIDATE_SUCCESS_MSG = "token.validate.success";
|
||||||
public static final String INVALID_REQUEST = "invalid.request";
|
public static final String INVALID_REQUEST = "invalid.request";
|
||||||
public static final String CODICE_FISCALE_EXISTS = "codice.fiscale.exists";
|
public static final String CODICE_FISCALE_EXISTS = "codice.fiscale.exists";
|
||||||
public static final String TOTAL_STEPS_NOT_BE_ZERO = "total.steps.not.zero";
|
public static final String TOTAL_STEPS_NOT_BE_ZERO = "total.steps.not.zero";
|
||||||
@@ -296,5 +296,11 @@ public class GepafinConstant {
|
|||||||
public static final String COMPANY_ID_REQUIRED_FOR_PREFERRED_CALL = "company.id.required.for.preferred.call";
|
public static final String COMPANY_ID_REQUIRED_FOR_PREFERRED_CALL = "company.id.required.for.preferred.call";
|
||||||
public static final String SUBMISSION_DATE = "submissionDate";
|
public static final String SUBMISSION_DATE = "submissionDate";
|
||||||
public static final String ASSIGNED_AT = "assignedAt";
|
public static final String ASSIGNED_AT = "assignedAt";
|
||||||
|
public static final String AUTH = "auth";
|
||||||
|
|
||||||
|
//Logging
|
||||||
|
public static final String USER_ID = "userId";
|
||||||
|
public static final String LOGIN_ATTEMPT_ID = "loginAttemptId";
|
||||||
|
public static final String USER_ACTION_ID = "userActionId";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ import net.gepafin.tendermanagement.entities.*;
|
|||||||
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
|
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.*;
|
import net.gepafin.tendermanagement.enums.*;
|
||||||
import net.gepafin.tendermanagement.model.request.*;
|
import net.gepafin.tendermanagement.model.request.*;
|
||||||
import net.gepafin.tendermanagement.model.request.AmendmentFormField.AmendmentIsUploadedByEnum;
|
|
||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.response.*;
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.repositories.*;
|
||||||
import net.gepafin.tendermanagement.service.*;
|
import net.gepafin.tendermanagement.service.*;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
@@ -92,6 +92,15 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EmailLogDao emailLogDao;
|
private EmailLogDao emailLogDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AssignedApplicationsDao assignedApplicationsDao;
|
||||||
|
|
||||||
public ApplicationAmendmentRequestResponse getApplicationDataForAmendment(Long applicationEvaluationId) {
|
public ApplicationAmendmentRequestResponse getApplicationDataForAmendment(Long applicationEvaluationId) {
|
||||||
log.info("Fetching the application data for the Amendment process {}", applicationEvaluationId);
|
log.info("Fetching the application data for the Amendment process {}", applicationEvaluationId);
|
||||||
ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(applicationEvaluationId);
|
ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(applicationEvaluationId);
|
||||||
@@ -204,6 +213,8 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
applicationAmendmentRequestEntity.setStartDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
applicationAmendmentRequestEntity.setStartDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
applicationAmendmentRequestEntity.setStatus(ApplicationAmendmentRequestEnum.AWAITING.getValue());
|
applicationAmendmentRequestEntity.setStatus(ApplicationAmendmentRequestEnum.AWAITING.getValue());
|
||||||
ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(applicationEvaluationId);
|
ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(applicationEvaluationId);
|
||||||
|
//cloned for old data entity
|
||||||
|
ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(applicationEvaluationEntity);
|
||||||
|
|
||||||
applicationAmendmentRequestEntity.setApplicationEvaluationEntity(applicationEvaluationEntity);
|
applicationAmendmentRequestEntity.setApplicationEvaluationEntity(applicationEvaluationEntity);
|
||||||
Long applicationId = applicationEvaluationEntity.getApplicationId();
|
Long applicationId = applicationEvaluationEntity.getApplicationId();
|
||||||
@@ -229,29 +240,51 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
applicationEvaluationEntity.getAssignedApplicationsEntity().getApplication(), protocolNumber,
|
applicationEvaluationEntity.getAssignedApplicationsEntity().getApplication(), protocolNumber,
|
||||||
userEntity.getHub().getId());
|
userEntity.getHub().getId());
|
||||||
applicationAmendmentRequestEntity.setProtocol(protocolEntity);
|
applicationAmendmentRequestEntity.setProtocol(protocolEntity);
|
||||||
ApplicationAmendmentRequestEntity applicationAmendment = saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity);
|
ApplicationAmendmentRequestEntity applicationAmendment = saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity, null, VersionActionTypeEnum.INSERT);
|
||||||
String evaluationStatusType = applicationEvaluationEntity.getStatus();
|
String evaluationStatusType = applicationEvaluationEntity.getStatus();
|
||||||
if (Boolean.FALSE.equals(evaluationStatusType.equals((ApplicationEvaluationStatusTypeEnum.SOCCORSO.getValue())))){
|
if (Boolean.FALSE.equals(evaluationStatusType.equals((ApplicationEvaluationStatusTypeEnum.SOCCORSO.getValue())))){
|
||||||
applicationEvaluationEntity.setStatus(ApplicationEvaluationStatusTypeEnum.SOCCORSO.getValue());
|
applicationEvaluationEntity.setStatus(ApplicationEvaluationStatusTypeEnum.SOCCORSO.getValue());
|
||||||
|
|
||||||
|
//Set Status
|
||||||
|
applicationEvaluationEntity.setStatus(ApplicationEvaluationStatusTypeEnum.SOCCORSO.getValue());
|
||||||
applicationEvaluationRepository.save(applicationEvaluationEntity);
|
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 applicationEntity = applicationService.validateApplication(applicationId);
|
||||||
|
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
|
||||||
String applicationStatusType = applicationEntity.getStatus();
|
String applicationStatusType = applicationEntity.getStatus();
|
||||||
if (Boolean.FALSE.equals(applicationStatusType.equals((ApplicationStatusTypeEnum.SOCCORSO.getValue())))) {
|
if (Boolean.FALSE.equals(applicationStatusType.equals((ApplicationStatusTypeEnum.SOCCORSO.getValue())))) {
|
||||||
applicationEntity.setStatus(ApplicationStatusTypeEnum.SOCCORSO.getValue());
|
applicationEntity.setStatus(ApplicationStatusTypeEnum.SOCCORSO.getValue());
|
||||||
applicationRepository.save(applicationEntity);
|
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 assignedApplicationsEntity = assignedApplicationsService.validateAssignedApplication(assignedApplicationId);
|
||||||
String assignedStatusType = assignedApplicationsEntity.getStatus();
|
String assignedStatusType = assignedApplicationsEntity.getStatus();
|
||||||
|
AssignedApplicationsEntity oldAssignedApplication = Utils.getClonedEntityForData(assignedApplicationsEntity);
|
||||||
if (Boolean.FALSE.equals(assignedStatusType.equals((AssignedApplicationEnum.SOCCORSO.getValue())))) {
|
if (Boolean.FALSE.equals(assignedStatusType.equals((AssignedApplicationEnum.SOCCORSO.getValue())))) {
|
||||||
assignedApplicationsEntity.setStatus(AssignedApplicationEnum.SOCCORSO.getValue());
|
assignedApplicationsEntity.setStatus(AssignedApplicationEnum.SOCCORSO.getValue());
|
||||||
assignedApplicationsRepository.save(assignedApplicationsEntity);
|
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;
|
return applicationAmendment;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationAmendmentRequestEntity saveApplicationAmendmentRequestEntity(ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity) {
|
public ApplicationAmendmentRequestEntity saveApplicationAmendmentRequestEntity(ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity,ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity,VersionActionTypeEnum actionTypeEnum) {
|
||||||
ApplicationAmendmentRequestEntity applicationAmendmentRequest = applicationAmendmentRequestRepository.save(applicationAmendmentRequestEntity);
|
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;
|
return applicationAmendmentRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,8 +425,9 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
public void deleteById(Long id) {
|
public void deleteById(Long id) {
|
||||||
log.info("Deleting assigned application with ID: {}", id);
|
log.info("Deleting assigned application with ID: {}", id);
|
||||||
ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = validateApplicationAmendmentRequest(id);
|
ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = validateApplicationAmendmentRequest(id);
|
||||||
|
ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(applicationAmendmentRequestEntity);
|
||||||
applicationAmendmentRequestEntity.setIsDeleted(true);
|
applicationAmendmentRequestEntity.setIsDeleted(true);
|
||||||
saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity);
|
saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity,oldApplicationAmendmentEntity,VersionActionTypeEnum.SOFT_DELETE);
|
||||||
log.info(" Application amendment deleted with ID: {}", id);
|
log.info(" Application amendment deleted with ID: {}", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,6 +475,7 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
log.info("Updating application amendement with ID: {}", id);
|
log.info("Updating application amendement with ID: {}", id);
|
||||||
ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(id);
|
ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(id);
|
||||||
|
|
||||||
|
ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(existingApplicationAmendment);
|
||||||
setIfUpdated(existingApplicationAmendment::getNote, existingApplicationAmendment::setNote, updateRequest.getNote());
|
setIfUpdated(existingApplicationAmendment::getNote, existingApplicationAmendment::setNote, updateRequest.getNote());
|
||||||
|
|
||||||
Map<String, AmendmentFormField> amendmentFormFieldMap = Utils
|
Map<String, AmendmentFormField> amendmentFormFieldMap = Utils
|
||||||
@@ -457,8 +492,9 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
});
|
});
|
||||||
existingApplicationAmendment.setFormFields(Utils.convertListToJsonString(amendmentFormFieldMap.values().stream().toList()));
|
existingApplicationAmendment.setFormFields(Utils.convertListToJsonString(amendmentFormFieldMap.values().stream().toList()));
|
||||||
}
|
}
|
||||||
|
existingApplicationAmendment.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
|
|
||||||
ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment);
|
ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment,oldApplicationAmendmentEntity,VersionActionTypeEnum.UPDATE);
|
||||||
ApplicationAmendmentRequestResponse response = convertEntityToResponse(updatedApplicationAmendment);
|
ApplicationAmendmentRequestResponse response = convertEntityToResponse(updatedApplicationAmendment);
|
||||||
log.info("Application Amendment updated successfully: {}", response);
|
log.info("Application Amendment updated successfully: {}", response);
|
||||||
return response;
|
return response;
|
||||||
@@ -570,9 +606,9 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
|
|
||||||
private void setIsUploadedBy(AmendmentFormField amendmentFormField) {
|
private void setIsUploadedBy(AmendmentFormField amendmentFormField) {
|
||||||
if(validator.checkIsBeneficiary()) {
|
if(validator.checkIsBeneficiary()) {
|
||||||
amendmentFormField.setIsUploadedBy(AmendmentIsUploadedByEnum.BENEFICIARY.getValue());
|
amendmentFormField.setIsUploadedBy(AmendmentFormField.AmendmentIsUploadedByEnum.BENEFICIARY.getValue());
|
||||||
}else {
|
}else {
|
||||||
amendmentFormField.setIsUploadedBy(AmendmentIsUploadedByEnum.PRE_INSTRUCTOR.getValue());
|
amendmentFormField.setIsUploadedBy(AmendmentFormField.AmendmentIsUploadedByEnum.PRE_INSTRUCTOR.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -763,43 +799,79 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationAmendmentRequestResponse closeAmendmentRequest(Long id, CloseAmendmentRequest closeAmendmentRequest) {
|
public ApplicationAmendmentRequestResponse closeAmendmentRequest(Long id, CloseAmendmentRequest closeAmendmentRequest) {
|
||||||
|
|
||||||
log.info("Closing application amendement with ID: {}", id);
|
log.info("Closing application amendement with ID: {}", id);
|
||||||
ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(id);
|
ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(id);
|
||||||
|
//cloned entity for old data and versioning
|
||||||
|
ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(existingApplicationAmendment);
|
||||||
|
|
||||||
setIfUpdated(existingApplicationAmendment::getInternalNote, existingApplicationAmendment::setInternalNote, closeAmendmentRequest.getInternalNote());
|
setIfUpdated(existingApplicationAmendment::getInternalNote, existingApplicationAmendment::setInternalNote, closeAmendmentRequest.getInternalNote());
|
||||||
setIfUpdated(existingApplicationAmendment::getStatus, existingApplicationAmendment::setStatus, ApplicationAmendmentRequestEnum.CLOSE.getValue());
|
setIfUpdated(existingApplicationAmendment::getStatus, existingApplicationAmendment::setStatus, ApplicationAmendmentRequestEnum.CLOSE.getValue());
|
||||||
|
|
||||||
ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment);
|
ApplicationAmendmentRequestEntity updatedApplicationAmendment = saveApplicationAmendmentRequestEntity(existingApplicationAmendment, oldApplicationAmendmentEntity,
|
||||||
|
VersionActionTypeEnum.UPDATE);
|
||||||
ApplicationAmendmentRequestResponse response = convertEntityToResponse(updatedApplicationAmendment);
|
ApplicationAmendmentRequestResponse response = convertEntityToResponse(updatedApplicationAmendment);
|
||||||
|
|
||||||
List<ApplicationAmendmentRequestEntity> amendmentRequests = applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndIsDeletedFalse(existingApplicationAmendment.getApplicationEvaluationEntity().getId());
|
List<ApplicationAmendmentRequestEntity> amendmentRequests = applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndIsDeletedFalse(
|
||||||
Boolean allClosed = amendmentRequests.stream()
|
existingApplicationAmendment.getApplicationEvaluationEntity().getId());
|
||||||
.allMatch(amendment -> amendment.getStatus().equals(ApplicationAmendmentRequestEnum.CLOSE.getValue()));
|
Boolean allClosed = amendmentRequests.stream().allMatch(amendment -> amendment.getStatus().equals(ApplicationAmendmentRequestEnum.CLOSE.getValue()));
|
||||||
ApplicationEntity application = applicationService.validateApplication(existingApplicationAmendment.getApplicationId());
|
ApplicationEntity application = applicationService.validateApplication(existingApplicationAmendment.getApplicationId());
|
||||||
|
ApplicationEntity oldApplicationEntityData = Utils.getClonedEntityForData(application);
|
||||||
if (Boolean.TRUE.equals(allClosed)) {
|
if (Boolean.TRUE.equals(allClosed)) {
|
||||||
existingApplicationAmendment.getApplicationEvaluationEntity().setStatus(ApplicationEvaluationStatusTypeEnum.OPEN.getValue());
|
existingApplicationAmendment.getApplicationEvaluationEntity().setStatus(ApplicationEvaluationStatusTypeEnum.OPEN.getValue());
|
||||||
|
|
||||||
|
if (allClosed) {
|
||||||
|
ApplicationEvaluationEntity existingApplicationEvaluationEntity = existingApplicationAmendment.getApplicationEvaluationEntity();
|
||||||
|
|
||||||
|
ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(existingApplicationEvaluationEntity);
|
||||||
|
existingApplicationEvaluationEntity.setStatus(ApplicationEvaluationStatusTypeEnum.OPEN.getValue());
|
||||||
applicationEvaluationRepository.save(existingApplicationAmendment.getApplicationEvaluationEntity());
|
applicationEvaluationRepository.save(existingApplicationAmendment.getApplicationEvaluationEntity());
|
||||||
|
|
||||||
application.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue());
|
application.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue());
|
||||||
applicationRepository.save(application);
|
applicationRepository.save(application);
|
||||||
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().setStatus(AssignedApplicationEnum.OPEN.getValue());
|
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().setStatus(AssignedApplicationEnum.OPEN.getValue());
|
||||||
assignedApplicationsRepository.save(existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity());
|
|
||||||
|
AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsDao.validateAssignedApplication(
|
||||||
|
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().getId());
|
||||||
|
|
||||||
|
AssignedApplicationsEntity oldAssignedApplicationData = Utils.getClonedEntityForData(assignedApplicationsEntity);
|
||||||
|
assignedApplicationsEntity = assignedApplicationsRepository.save(existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity());
|
||||||
|
|
||||||
|
/** 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());
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update Application status" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntityData).newData(application).build());
|
||||||
|
|
||||||
|
/** 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(oldAssignedApplicationData)
|
||||||
|
.newData(assignedApplicationsEntity).build());
|
||||||
|
|
||||||
log.info("All amendments are closed. Application Evaluation status set to OPEN.");
|
log.info("All amendments are closed. Application Evaluation status set to OPEN.");
|
||||||
}
|
}
|
||||||
log.info("Application Amendment closed successfully: {}", response);
|
log.info("Application Amendment closed successfully: {}", response);
|
||||||
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationAmendmentRequestResponse extendResponseDays(Long id, Long newResponseDays) {
|
public ApplicationAmendmentRequestResponse extendResponseDays(Long id, Long newResponseDays) {
|
||||||
ApplicationAmendmentRequestEntity request = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id)
|
ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
||||||
|
|
||||||
if (newResponseDays != null && newResponseDays > 0) {
|
if (newResponseDays != null && newResponseDays > 0) {
|
||||||
Long currentResponseDays = request.getResponseDays() != null ? request.getResponseDays() : 0L;
|
ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(applicationAmendmentRequestEntity);
|
||||||
request.setResponseDays(currentResponseDays + newResponseDays);
|
Long currentResponseDays = applicationAmendmentRequestEntity.getResponseDays() != null ? applicationAmendmentRequestEntity.getResponseDays() : 0L;
|
||||||
applicationAmendmentRequestRepository.save(request);
|
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<ApplicationAmendmentRequestResponse> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId, List<ApplicationAmendmentRequestEnum> statuses) {
|
public List<ApplicationAmendmentRequestResponse> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId, List<ApplicationAmendmentRequestEnum> statuses) {
|
||||||
@@ -835,10 +907,14 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
|
|
||||||
log.info("Updating application amendment with status: {}", id);
|
log.info("Updating application amendment with status: {}", id);
|
||||||
ApplicationAmendmentRequestEntity existingApplicationAmendment = validateApplicationAmendmentRequest(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))) {
|
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.setStatus(ApplicationAmendmentRequestEnum.RESPONSE_RECEIVED.getValue());
|
||||||
existingApplicationAmendment.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
existingApplicationAmendment.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
applicationAmendmentRequestRepository.save(existingApplicationAmendment);
|
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);
|
ApplicationAmendmentRequestResponse response = convertEntityToResponse(existingApplicationAmendment);
|
||||||
log.info("Amendment status updated successfully: {}", response);
|
log.info("Amendment status updated successfully: {}", response);
|
||||||
@@ -846,22 +922,22 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void sendReminderEmail(Long amendmentId) {
|
public void sendReminderEmail(Long amendmentId) {
|
||||||
|
|
||||||
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(amendmentId)
|
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(amendmentId)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
||||||
Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG)));
|
|
||||||
|
|
||||||
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId());
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId());
|
||||||
if (entityOptional.isPresent()) {
|
if (entityOptional.isPresent()) {
|
||||||
ApplicationEntity applicationEntity = applicationService.validateApplication(entityOptional.get().getApplicationId());
|
ApplicationEntity applicationEntity = applicationService.validateApplication(entityOptional.get().getApplicationId());
|
||||||
UserEntity beneficiaryUser = userService.validateUser(applicationEntity.getUserId());
|
UserEntity beneficiaryUser = userService.validateUser(applicationEntity.getUserId());
|
||||||
HubEntity hub = hubService.valdateHub(applicationEntity.getHubId());
|
HubEntity hub = hubService.valdateHub(applicationEntity.getHubId());
|
||||||
SystemEmailTemplateResponse emailTemplate = systemEmailTemplatesService
|
SystemEmailTemplateResponse emailTemplate = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum.AMENDMENT_REMINDER, hub, null);
|
||||||
.retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum.AMENDMENT_REMINDER, hub, null);
|
|
||||||
String subject = prepareSubject(emailTemplate, amendment, beneficiaryUser);
|
String subject = prepareSubject(emailTemplate, amendment, beneficiaryUser);
|
||||||
String body = prepareBody(emailTemplate, amendment, beneficiaryUser);
|
String body = prepareBody(emailTemplate, amendment, beneficiaryUser);
|
||||||
String email = beneficiaryUser.getEmail();
|
String email = beneficiaryUser.getEmail();
|
||||||
if (Boolean.TRUE.equals(amendment.getIsEmail()) && email != null && !email.isEmpty()) {
|
if (Boolean.TRUE.equals(amendment.getIsEmail()) && email != null && !email.isEmpty()) {
|
||||||
EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(emailTemplate.getEmailScenario(),RecipientTypeEnum.USER,beneficiaryUser.getId(),email,beneficiaryUser.getId(),applicationEntity.getId(),amendment.getId(),applicationEntity.getCall().getId());
|
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(emailTemplate.getEmailScenario(), RecipientTypeEnum.USER, beneficiaryUser.getId(), email,
|
||||||
|
beneficiaryUser.getId(), applicationEntity.getId(), amendment.getId(), applicationEntity.getCall().getId());
|
||||||
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email), emailLogRequest);
|
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email), emailLogRequest);
|
||||||
} else {
|
} else {
|
||||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.BENEFICIARY_EMAIL_NOT_FOUND_MSG));
|
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.BENEFICIARY_EMAIL_NOT_FOUND_MSG));
|
||||||
@@ -897,10 +973,8 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
return Utils.replacePlaceholders(template.getHtmlContent(), bodyPlaceholders);
|
return Utils.replacePlaceholders(template.getHtmlContent(), bodyPlaceholders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void softDeleteDocument(Long documentId) {
|
private void softDeleteDocument(Long documentId) {
|
||||||
documentService.deleteFile(documentId);
|
documentService.deleteFile(documentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
|
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
|
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
|
||||||
@@ -9,6 +10,7 @@ import net.gepafin.tendermanagement.model.request.ApplicationFormFieldRequestBea
|
|||||||
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
|
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
|
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
|
||||||
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.response.*;
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.repositories.*;
|
||||||
import net.gepafin.tendermanagement.service.AmazonS3Service;
|
import net.gepafin.tendermanagement.service.AmazonS3Service;
|
||||||
@@ -21,6 +23,7 @@ import net.gepafin.tendermanagement.service.SystemEmailTemplatesService;
|
|||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
import net.gepafin.tendermanagement.util.FieldValidator;
|
import net.gepafin.tendermanagement.util.FieldValidator;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
@@ -146,6 +149,15 @@ public class ApplicationDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EmailLogDao emailLogDao;
|
private EmailLogDao emailLogDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TokenProvider tokenProvider;
|
||||||
|
|
||||||
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId, Long applicationId) {
|
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId, Long applicationId) {
|
||||||
FormEntity formEntity = formService.validateForm(formId);
|
FormEntity formEntity = formService.validateForm(formId);
|
||||||
// callService.validatePublishedCall(formEntity.getCall().getId());
|
// callService.validatePublishedCall(formEntity.getCall().getId());
|
||||||
@@ -160,6 +172,7 @@ public class ApplicationDao {
|
|||||||
createOrUpdateMultipleFormFields(applicationRequestBean.getFormFields(), applicationFormEntity, formEntity);
|
createOrUpdateMultipleFormFields(applicationRequestBean.getFormFields(), applicationFormEntity, formEntity);
|
||||||
return getApplicationById(applicationEntity.getId(),formEntity.getId());
|
return getApplicationById(applicationEntity.getId(),formEntity.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validateDelegation(UserEntity user, CompanyEntity company) {
|
public void validateDelegation(UserEntity user, CompanyEntity company) {
|
||||||
UserWithCompanyEntity userWithCompany = companyService.getUserWithCompanyEntity(user.getId(), company.getId());
|
UserWithCompanyEntity userWithCompany = companyService.getUserWithCompanyEntity(user.getId(), company.getId());
|
||||||
|
|
||||||
@@ -259,12 +272,19 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteById(HttpServletRequest request, Long id) {
|
public void deleteById(HttpServletRequest request, Long id) {
|
||||||
|
|
||||||
log.info("Deleting application with ID: {}", id);
|
log.info("Deleting application with ID: {}", id);
|
||||||
|
|
||||||
ApplicationEntity applicationEntity = validateApplication(id);
|
ApplicationEntity applicationEntity = validateApplication(id);
|
||||||
|
ApplicationEntity oldApplicationDataEntity = Utils.getClonedEntityForData(applicationEntity);
|
||||||
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
||||||
applicationEntity.setIsDeleted(true);
|
applicationEntity.setIsDeleted(true);
|
||||||
applicationEntity=saveApplicationEntity(applicationEntity);
|
applicationEntity = applicationRepository.save(applicationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Delete application" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldApplicationDataEntity).newData(applicationEntity).build());
|
||||||
|
|
||||||
log.info("Application deleted with ID: {}", id);
|
log.info("Application deleted with ID: {}", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,41 +412,53 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ApplicationFormEntity getApplicationFormOrCreate(FormEntity formEntity, ApplicationEntity applicationEntity) {
|
private ApplicationFormEntity getApplicationFormOrCreate(FormEntity formEntity, ApplicationEntity applicationEntity) {
|
||||||
|
|
||||||
ApplicationFormEntity applicationFormEntity = applicationFormRepository.findByApplicationIdAndFormId(applicationEntity.getId(), formEntity.getId());
|
ApplicationFormEntity applicationFormEntity = applicationFormRepository.findByApplicationIdAndFormId(applicationEntity.getId(), formEntity.getId());
|
||||||
|
ApplicationFormEntity oldApplicationFormEntity = Utils.getClonedEntityForData(applicationFormEntity);
|
||||||
if (applicationFormEntity == null) {
|
if (applicationFormEntity == null) {
|
||||||
applicationFormEntity = createApplicationFormEntity(applicationEntity, formEntity);
|
applicationFormEntity = createApplicationFormEntity(applicationEntity, formEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create application form" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(oldApplicationFormEntity).newData(applicationFormEntity)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
return applicationFormEntity;
|
return applicationFormEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ApplicationFormFieldEntity> createOrUpdateMultipleFormFields(List<ApplicationFormFieldRequestBean> formFieldResponseBeans, ApplicationFormEntity applicationFormEntity,FormEntity formEntity) {
|
public List<ApplicationFormFieldEntity> createOrUpdateMultipleFormFields(List<ApplicationFormFieldRequestBean> formFieldResponseBeans,
|
||||||
|
ApplicationFormEntity applicationFormEntity, FormEntity formEntity) {
|
||||||
|
|
||||||
List<ApplicationFormFieldEntity> existingFields = applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId());
|
List<ApplicationFormFieldEntity> existingFields = applicationFormFieldRepository.findByApplicationFormId(applicationFormEntity.getId());
|
||||||
|
|
||||||
List<ApplicationFormFieldEntity> applicationFormFieldEntity = formFieldResponseBeans.stream()
|
return formFieldResponseBeans.stream().map(requestBean -> createOrUpdateApplicationFormField(requestBean, applicationFormEntity, existingFields, formEntity))
|
||||||
.map(requestBean -> createOrUpdateApplicationFormField(requestBean, applicationFormEntity,existingFields,formEntity))
|
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return applicationFormFieldEntity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationFormFieldEntity createOrUpdateApplicationFormField(ApplicationFormFieldRequestBean applicationFormFieldRequestBean, ApplicationFormEntity applicationFormEntity,List<ApplicationFormFieldEntity> applicationFormFieldEntities ,FormEntity formEntity) {
|
public ApplicationFormFieldEntity createOrUpdateApplicationFormField(ApplicationFormFieldRequestBean applicationFormFieldRequestBean,
|
||||||
|
ApplicationFormEntity applicationFormEntity, List<ApplicationFormFieldEntity> applicationFormFieldEntities, FormEntity formEntity) {
|
||||||
|
|
||||||
ApplicationFormFieldEntity applicationFormFieldEntity=null;
|
ApplicationFormFieldEntity applicationFormFieldEntity = new ApplicationFormFieldEntity();
|
||||||
|
|
||||||
List<Long> newDocumentIds = validateFileUploadDocuments(applicationFormFieldRequestBean, formEntity);
|
List<Long> newDocumentIds = validateFileUploadDocuments(applicationFormFieldRequestBean, formEntity);
|
||||||
|
validateFileUploadDocuments(applicationFormFieldRequestBean, formEntity);
|
||||||
|
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||||
|
|
||||||
|
ApplicationFormFieldEntity oldApplicationFormFieldData = null;
|
||||||
|
|
||||||
if (applicationFormFieldEntities == null || applicationFormFieldEntities.isEmpty()) {
|
if (applicationFormFieldEntities == null || applicationFormFieldEntities.isEmpty()) {
|
||||||
applicationFormFieldEntity = new ApplicationFormFieldEntity();
|
|
||||||
applicationFormFieldEntity.setApplicationForm(applicationFormEntity);
|
applicationFormFieldEntity.setApplicationForm(applicationFormEntity);
|
||||||
} else {
|
} else {
|
||||||
for (ApplicationFormFieldEntity applicationFormFieldEntity1 : applicationFormFieldEntities) {
|
for (ApplicationFormFieldEntity applicationFormFieldEntity1 : applicationFormFieldEntities) {
|
||||||
if (applicationFormFieldEntity1.getFieldId().equals(applicationFormFieldRequestBean.getFieldId())) {
|
if (applicationFormFieldEntity1.getFieldId().equals(applicationFormFieldRequestBean.getFieldId())) {
|
||||||
applicationFormFieldEntity = applicationFormFieldEntity1;
|
applicationFormFieldEntity = applicationFormFieldEntity1;
|
||||||
|
oldApplicationFormFieldData = Utils.getClonedEntityForData(applicationFormFieldEntity);
|
||||||
if (applicationFormEntity.getForm().getId().equals(applicationFormEntity.getApplication().getCall().getInitialForm())) {
|
if (applicationFormEntity.getForm().getId().equals(applicationFormEntity.getApplication().getCall().getInitialForm())) {
|
||||||
validateRequiredFields(applicationFormEntity.getForm(), applicationFormEntity.getApplication(), applicationFormFieldRequestBean.getFieldId());
|
validateRequiredFields(applicationFormEntity.getForm(), applicationFormEntity.getApplication(), applicationFormFieldRequestBean.getFieldId());
|
||||||
}
|
}
|
||||||
|
actionType = VersionActionTypeEnum.UPDATE;
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
applicationFormFieldEntity = new ApplicationFormFieldEntity();
|
|
||||||
applicationFormFieldEntity.setApplicationForm(applicationFormEntity);
|
applicationFormFieldEntity.setApplicationForm(applicationFormEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -439,10 +471,24 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
if (applicationFormFieldRequestBean.getFieldValue() == null) {
|
if (applicationFormFieldRequestBean.getFieldValue() == null) {
|
||||||
updateDocumentDeletionStatus(applicationFormFieldEntity, applicationFormFieldRequestBean, formEntity, newDocumentIds, null, false);
|
updateDocumentDeletionStatus(applicationFormFieldEntity, applicationFormFieldRequestBean, formEntity, newDocumentIds, null, false);
|
||||||
|
}
|
||||||
|
if (applicationFormFieldRequestBean.getFieldValue() != null) {
|
||||||
|
applicationFormFieldEntity.setFieldValue(Utils.convertObjectToJsonString(applicationFormFieldRequestBean.getFieldValue()));
|
||||||
|
} else {
|
||||||
applicationFormFieldEntity.setFieldValue(null);
|
applicationFormFieldEntity.setFieldValue(null);
|
||||||
}
|
}
|
||||||
return applicationFormFieldRepository.save(applicationFormFieldEntity);
|
|
||||||
|
ApplicationFormFieldEntity applicationFormField = applicationFormFieldRepository.save(applicationFormFieldEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create update application form" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldApplicationFormFieldData).newData(applicationFormField).build());
|
||||||
|
|
||||||
|
log.info("Version history logged for action: {}, Field ID: {}", actionType, applicationFormFieldEntity.getFieldId());
|
||||||
|
|
||||||
|
return applicationFormField;
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateDocumentDeletionStatus(ApplicationFormFieldEntity applicationFormFieldEntity, ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity, List<Long> newDocumentIds,
|
void updateDocumentDeletionStatus(ApplicationFormFieldEntity applicationFormFieldEntity, ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity, List<Long> newDocumentIds,
|
||||||
List<String> preInstructorDocumentId,boolean isPreInstructor) {
|
List<String> preInstructorDocumentId,boolean isPreInstructor) {
|
||||||
if (newDocumentIds == null) {
|
if (newDocumentIds == null) {
|
||||||
@@ -505,9 +551,6 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private List<Long> validateFileUploadDocuments(ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity) {
|
private List<Long> validateFileUploadDocuments(ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity) {
|
||||||
List<Long> documentIds=null;
|
List<Long> documentIds=null;
|
||||||
// List<ContentResponseBean> contentResponseBeans=Utils.convertJsonStringToList(formEntity.getContent(),ContentResponseBean.class);
|
// List<ContentResponseBean> contentResponseBeans=Utils.convertJsonStringToList(formEntity.getContent(),ContentResponseBean.class);
|
||||||
@@ -570,8 +613,14 @@ public class ApplicationDao {
|
|||||||
applicationFormFieldResponseBean.setUpdatedDate(applicationFormFieldEntity.getUpdatedDate());
|
applicationFormFieldResponseBean.setUpdatedDate(applicationFormFieldEntity.getUpdatedDate());
|
||||||
return applicationFormFieldResponseBean;
|
return applicationFormFieldResponseBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEntity saveApplicationEntity(ApplicationEntity application) {
|
public ApplicationEntity saveApplicationEntity(ApplicationEntity application) {
|
||||||
|
|
||||||
ApplicationEntity applicationEntity = applicationRepository.save(application);
|
ApplicationEntity applicationEntity = applicationRepository.save(application);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "Create application" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(applicationEntity).build());
|
||||||
|
|
||||||
return applicationEntity;
|
return applicationEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -727,8 +776,7 @@ public class ApplicationDao {
|
|||||||
ApplicationEntity applicationEntity = createApplicationEntity(userEntity, call, companyEntity);
|
ApplicationEntity applicationEntity = createApplicationEntity(userEntity, call, companyEntity);
|
||||||
applicationEntity.setComments(applicationRequest.getComments());
|
applicationEntity.setComments(applicationRequest.getComments());
|
||||||
applicationEntity = saveApplicationEntity(applicationEntity);
|
applicationEntity = saveApplicationEntity(applicationEntity);
|
||||||
ApplicationResponse applicationResponse = getApplicationResponse(applicationEntity);
|
return getApplicationResponse(applicationEntity);
|
||||||
return applicationResponse;
|
|
||||||
}
|
}
|
||||||
public void checkIfApplicationExists(CallEntity call, CompanyEntity companyEntity, UserEntity userEntity){
|
public void checkIfApplicationExists(CallEntity call, CompanyEntity companyEntity, UserEntity userEntity){
|
||||||
Optional<ApplicationEntity> applicationEntity=applicationRepository.findByUserIdAndCompanyIdAndCallIdAndIsDeletedFalse(userEntity.getId(), companyEntity.getId(),call.getId());
|
Optional<ApplicationEntity> applicationEntity=applicationRepository.findByUserIdAndCompanyIdAndCallIdAndIsDeletedFalse(userEntity.getId(), companyEntity.getId(),call.getId());
|
||||||
@@ -738,7 +786,12 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
||||||
|
|
||||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||||
|
|
||||||
|
//cloned entity for old application data
|
||||||
|
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
|
||||||
|
|
||||||
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||||
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
||||||
if (ApplicationStatusTypeEnum.SUBMIT.getValue().equals(applicationEntity.getStatus())) {
|
if (ApplicationStatusTypeEnum.SUBMIT.getValue().equals(applicationEntity.getStatus())) {
|
||||||
@@ -755,7 +808,12 @@ public class ApplicationDao {
|
|||||||
applicationEntity.setProtocol(protocolEntity);
|
applicationEntity.setProtocol(protocolEntity);
|
||||||
applicationEntity.setStatus(ApplicationStatusTypeEnum.SUBMIT.getValue());
|
applicationEntity.setStatus(ApplicationStatusTypeEnum.SUBMIT.getValue());
|
||||||
applicationEntity.setSubmissionDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
applicationEntity.setSubmissionDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
applicationEntity = saveApplicationEntity(applicationEntity);
|
applicationEntity = applicationRepository.save(applicationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "Update application status" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(applicationEntity).build());
|
||||||
|
|
||||||
sendMailToUserAndCompany(userEntity, applicationEntity);
|
sendMailToUserAndCompany(userEntity, applicationEntity);
|
||||||
sendMailTodefaultSystemAndGepafin(userEntity, applicationEntity);
|
sendMailTodefaultSystemAndGepafin(userEntity, applicationEntity);
|
||||||
applicationEntity.setStatus(status.getValue());
|
applicationEntity.setStatus(status.getValue());
|
||||||
@@ -763,13 +821,16 @@ public class ApplicationDao {
|
|||||||
if (status.equals(ApplicationStatusTypeEnum.DRAFT) && Boolean.TRUE.equals(applicationEntity.getStatus().equals(ApplicationStatusTypeEnum.AWAITING.getValue()))) {
|
if (status.equals(ApplicationStatusTypeEnum.DRAFT) && Boolean.TRUE.equals(applicationEntity.getStatus().equals(ApplicationStatusTypeEnum.AWAITING.getValue()))) {
|
||||||
applicationEntity.setStatus(status.getValue());
|
applicationEntity.setStatus(status.getValue());
|
||||||
}
|
}
|
||||||
applicationEntity = saveApplicationEntity(applicationEntity);
|
applicationEntity = applicationRepository.save(applicationEntity);
|
||||||
|
|
||||||
|
|
||||||
|
if (!status.equals(ApplicationStatusTypeEnum.SUBMIT)) {
|
||||||
|
/** This code is responsible for adding a version history log for "Update application status" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(applicationEntity).build());
|
||||||
|
}
|
||||||
return getApplicationResponse(applicationEntity);
|
return getApplicationResponse(applicationEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Integer calculateProgress(Long totalSteps, Long completedSteps) {
|
public Integer calculateProgress(Long totalSteps, Long completedSteps) {
|
||||||
if (FieldValidator.isNullOrZero(totalSteps)) {
|
if (FieldValidator.isNullOrZero(totalSteps)) {
|
||||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.TOTAL_STEPS_NOT_BE_ZERO));
|
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.TOTAL_STEPS_NOT_BE_ZERO));
|
||||||
@@ -838,7 +899,17 @@ public class ApplicationDao {
|
|||||||
|
|
||||||
if (nextApplicationFormEntity != null) {
|
if (nextApplicationFormEntity != null) {
|
||||||
List<ApplicationFormFieldEntity> nextApplicationFormFieldEntities = applicationFormFieldRepository.findByApplicationFormId(nextApplicationFormEntity.getId());
|
List<ApplicationFormFieldEntity> nextApplicationFormFieldEntities = applicationFormFieldRepository.findByApplicationFormId(nextApplicationFormEntity.getId());
|
||||||
|
|
||||||
|
nextApplicationFormFieldEntities.forEach(applicationFormFieldEntityToDelete ->
|
||||||
|
/** This code is responsible for adding a version history log for "Deleting application form field" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(applicationFormFieldEntityToDelete).build()));
|
||||||
|
|
||||||
applicationFormFieldRepository.deleteAll(nextApplicationFormFieldEntities);
|
applicationFormFieldRepository.deleteAll(nextApplicationFormFieldEntities);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Deleting next application form" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(nextApplicationFormEntity).build());
|
||||||
|
|
||||||
applicationFormRepository.delete(nextApplicationFormEntity);
|
applicationFormRepository.delete(nextApplicationFormEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -936,30 +1007,45 @@ public class ApplicationDao {
|
|||||||
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(defaultSystemReceiverEmail),emailLogRequest);
|
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(defaultSystemReceiverEmail),emailLogRequest);
|
||||||
emailLogRequest.setRecipientEmails(rinaldoEmail);
|
emailLogRequest.setRecipientEmails(rinaldoEmail);
|
||||||
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(rinaldoEmail),emailLogRequest);
|
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(rinaldoEmail),emailLogRequest);
|
||||||
|
|
||||||
}
|
}
|
||||||
public ApplicationSignedDocumentResponse uploadSignedDocument(HttpServletRequest request, Long applicationId,
|
|
||||||
MultipartFile file) {
|
public ApplicationSignedDocumentResponse uploadSignedDocument(HttpServletRequest request, Long applicationId, MultipartFile file) {
|
||||||
|
|
||||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||||
|
//cloned entity for old data
|
||||||
|
ApplicationEntity oldApplicationData = Utils.getClonedEntityForData(applicationEntity);
|
||||||
|
|
||||||
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
||||||
validateFileTypeForCall(file, applicationEntity);
|
validateFileTypeForCall(file, applicationEntity);
|
||||||
ApplicationSignedDocumentEntity applicationSignedDocument = applicationSignedDocumentRepository
|
ApplicationSignedDocumentEntity applicationSignedDocument = applicationSignedDocumentRepository.findByApplicationIdAndStatus(applicationId,
|
||||||
.findByApplicationIdAndStatus(applicationId, ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
||||||
|
//cloned entity for old data
|
||||||
|
ApplicationSignedDocumentEntity oldApplicationSingedDocumentData = Utils.getClonedEntityForData(applicationSignedDocument);
|
||||||
|
|
||||||
if (applicationSignedDocument != null) {
|
if (applicationSignedDocument != null) {
|
||||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_ALREADY_ASSIGNED));
|
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_ALREADY_ASSIGNED));
|
||||||
// applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue());
|
// applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue());
|
||||||
// applicationSignedDocumentRepository.save(applicationSignedDocument);
|
// applicationSignedDocumentRepository.save(applicationSignedDocument);
|
||||||
}
|
}
|
||||||
UploadFileOnAmazonS3Response uploadFileOnAmazonS3 = uploadFileOnAmazonS3ForUserSignedDocument(file,
|
UploadFileOnAmazonS3Response uploadFileOnAmazonS3 = uploadFileOnAmazonS3ForUserSignedDocument(file, applicationEntity.getCall().getId(), applicationId);
|
||||||
applicationEntity.getCall().getId(), applicationId);
|
|
||||||
applicationSignedDocument = new ApplicationSignedDocumentEntity();
|
applicationSignedDocument = new ApplicationSignedDocumentEntity();
|
||||||
applicationSignedDocument.setApplication(applicationEntity);
|
applicationSignedDocument.setApplication(applicationEntity);
|
||||||
applicationSignedDocument.setFileName(uploadFileOnAmazonS3.getFileName());
|
applicationSignedDocument.setFileName(uploadFileOnAmazonS3.getFileName());
|
||||||
applicationSignedDocument.setFilePath(uploadFileOnAmazonS3.getFilePath());
|
applicationSignedDocument.setFilePath(uploadFileOnAmazonS3.getFilePath());
|
||||||
applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
||||||
applicationSignedDocumentRepository.save(applicationSignedDocument);
|
applicationSignedDocument = applicationSignedDocumentRepository.save(applicationSignedDocument);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "assign application document" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(oldApplicationSingedDocumentData)
|
||||||
|
.newData(applicationSignedDocument).build());
|
||||||
|
|
||||||
applicationEntity.setStatus(ApplicationStatusTypeEnum.READY.getValue());
|
applicationEntity.setStatus(ApplicationStatusTypeEnum.READY.getValue());
|
||||||
applicationRepository.save(applicationEntity);
|
applicationEntity = applicationRepository.save(applicationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create Call" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationData).newData(applicationEntity).build());
|
||||||
|
|
||||||
return convertApplicationSignedDocumentToApplicationSignedDocumentResponse(applicationSignedDocument);
|
return convertApplicationSignedDocumentToApplicationSignedDocumentResponse(applicationSignedDocument);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1029,22 +1115,33 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteSignedDocument(HttpServletRequest request, Long applicationId) {
|
public void deleteSignedDocument(HttpServletRequest request, Long applicationId) {
|
||||||
|
|
||||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||||
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
||||||
|
|
||||||
ApplicationSignedDocumentEntity applicationSignedDocument = applicationSignedDocumentRepository
|
ApplicationSignedDocumentEntity applicationSignedDocument = applicationSignedDocumentRepository.findByApplicationIdAndStatus(applicationId,
|
||||||
.findByApplicationIdAndStatus(applicationId, ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
||||||
|
//cloned entity for old data
|
||||||
|
ApplicationSignedDocumentEntity oldApplicationSignedDocument = Utils.getClonedEntityForData(applicationSignedDocument);
|
||||||
if (applicationSignedDocument == null) {
|
if (applicationSignedDocument == null) {
|
||||||
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_SIGNED_DOCUMENT_NOT_FOUND));
|
||||||
Translator.toLocale(GepafinConstant.APPLICATION_SIGNED_DOCUMENT_NOT_FOUND));
|
|
||||||
}
|
}
|
||||||
applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue());
|
applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue());
|
||||||
applicationSignedDocumentRepository.save(applicationSignedDocument);
|
applicationSignedDocument = applicationSignedDocumentRepository.save(applicationSignedDocument);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Delete signed document" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationSignedDocument).newData(applicationSignedDocument)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationResponse validateApplication(HttpServletRequest request, Long applicationId) {
|
public ApplicationResponse validateApplication(HttpServletRequest request, Long applicationId) {
|
||||||
|
|
||||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||||
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
|
||||||
|
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
|
||||||
|
|
||||||
|
userService.validateUser(applicationEntity.getUserId());
|
||||||
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
validator.validateUserWithCompany(request, applicationEntity.getCompany().getId());
|
||||||
if (Boolean.FALSE.equals(ApplicationStatusTypeEnum.DRAFT.getValue().equals(applicationEntity.getStatus()))) {
|
if (Boolean.FALSE.equals(ApplicationStatusTypeEnum.DRAFT.getValue().equals(applicationEntity.getStatus()))) {
|
||||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_NOT_IN_DRAFT_STATUS));
|
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_NOT_IN_DRAFT_STATUS));
|
||||||
@@ -1057,9 +1154,15 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
applicationEntity.setStatus(ApplicationStatusTypeEnum.AWAITING.getValue());
|
applicationEntity.setStatus(ApplicationStatusTypeEnum.AWAITING.getValue());
|
||||||
applicationEntity = saveApplicationEntity(applicationEntity);
|
applicationEntity = applicationRepository.save(applicationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "Update application status or other details" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(applicationEntity).build());
|
||||||
|
|
||||||
return getApplicationResponse(applicationEntity);
|
return getApplicationResponse(applicationEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] downloadApplicationDocumentsAsZip(HttpServletRequest request, Long applicationId) {
|
public byte[] downloadApplicationDocumentsAsZip(HttpServletRequest request, Long applicationId) {
|
||||||
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
||||||
validateAssignedUser(request, applicationId);
|
validateAssignedUser(request, applicationId);
|
||||||
|
|||||||
@@ -4,20 +4,19 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
import net.gepafin.tendermanagement.enums.*;
|
import net.gepafin.tendermanagement.enums.*;
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
|
import net.gepafin.tendermanagement.model.request.*;
|
||||||
import net.gepafin.tendermanagement.model.request.ChecklistRequest;
|
|
||||||
import net.gepafin.tendermanagement.model.request.CriteriaRequest;
|
|
||||||
import net.gepafin.tendermanagement.model.request.FieldRequest;
|
|
||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.response.*;
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.repositories.*;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationService;
|
import net.gepafin.tendermanagement.service.ApplicationService;
|
||||||
import net.gepafin.tendermanagement.service.AssignedApplicationsService;
|
import net.gepafin.tendermanagement.service.AssignedApplicationsService;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
@@ -86,6 +85,12 @@ public class ApplicationEvaluationDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AssignedApplicationsService assignedApplicationsService;
|
private AssignedApplicationsService assignedApplicationsService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
private ApplicationEvaluationEntity convertToEntity(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
private ApplicationEvaluationEntity convertToEntity(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
||||||
|
|
||||||
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
||||||
@@ -140,7 +145,6 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void setCriteriaResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
private void setCriteriaResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
||||||
|
|
||||||
List<CriteriaResponse> criteriaResponsesFromEntity = entity.getCriteria() != null ?
|
List<CriteriaResponse> criteriaResponsesFromEntity = entity.getCriteria() != null ?
|
||||||
@@ -415,7 +419,7 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setBeneficiary(beneficiary);
|
response.setBeneficiary(beneficiary);
|
||||||
response.setMinScore(call.getThreshold() != null ? call.getThreshold() : null);
|
response.setMinScore(call.getThreshold() != null ? call.getThreshold() : null);
|
||||||
response.setCallName(application.getCall().getName() != null ? application.getCall().getName() : null);
|
response.setCallName(application.getCall().getName() != null ? application.getCall().getName() : null);
|
||||||
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
response.setProtocolNumber((application.getProtocol() != null && application.getProtocol().getProtocolNumber() != null) ? application.getProtocol().getProtocolNumber() : null);
|
||||||
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
||||||
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
||||||
LocalDateTime callEndDate = application.getCall().getEndDate();
|
LocalDateTime callEndDate = application.getCall().getEndDate();
|
||||||
@@ -430,24 +434,32 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
Optional<ApplicationEvaluationEntity> existingEntityOptional =
|
Optional<ApplicationEvaluationEntity> existingEntityOptional =
|
||||||
applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
||||||
ApplicationEvaluationEntity entity;
|
ApplicationEvaluationEntity entity = null;
|
||||||
Optional<AssignedApplicationsEntity> assignedApplications =
|
Optional<AssignedApplicationsEntity> assignedApplications =
|
||||||
assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId);
|
assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId);
|
||||||
|
ApplicationEvaluationEntity oldApplicationEvaluation = null;
|
||||||
|
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||||
if (existingEntityOptional.isPresent()) {
|
if (existingEntityOptional.isPresent()) {
|
||||||
entity = existingEntityOptional.get();
|
entity = existingEntityOptional.get();
|
||||||
|
oldApplicationEvaluation = Utils.getClonedEntityForData(entity);
|
||||||
entity.setCriteria(Utils.convertObjectToJson(filterNonNullCriteria(processCriteria(entity, req))));
|
entity.setCriteria(Utils.convertObjectToJson(filterNonNullCriteria(processCriteria(entity, req))));
|
||||||
entity.setChecklist(Utils.convertObjectToJson(filterNonNullChecklist(processChecklist(entity, req))));
|
entity.setChecklist(Utils.convertObjectToJson(filterNonNullChecklist(processChecklist(entity, req))));
|
||||||
entity.setFile(Utils.convertObjectToJson(filterNonNullFields(processField(entity, req))));
|
entity.setFile(Utils.convertObjectToJson(filterNonNullFields(processField(entity, req))));
|
||||||
entity.setIsDeleted(false);
|
entity.setIsDeleted(false);
|
||||||
setIfUpdated(entity::getNote, entity::setNote, req.getNote());
|
setIfUpdated(entity::getNote, entity::setNote, req.getNote());
|
||||||
setIfUpdated(entity::getMotivation, entity::setMotivation, req.getMotivation());
|
setIfUpdated(entity::getMotivation, entity::setMotivation, req.getMotivation());
|
||||||
|
actionType = VersionActionTypeEnum.UPDATE;
|
||||||
} else {
|
} else {
|
||||||
entity = convertToEntity(user, req, assignedApplicationId);
|
entity = convertToEntity(user, req, assignedApplicationId);
|
||||||
|
actionType = VersionActionTypeEnum.INSERT;
|
||||||
}
|
}
|
||||||
ApplicationStatusForEvaluation status = req.getApplicationStatus();
|
ApplicationStatusForEvaluation status = req.getApplicationStatus();
|
||||||
|
|
||||||
ApplicationEvaluationEntity savedEntity = applicationEvaluationRepository.save(entity);
|
ApplicationEvaluationEntity savedEntity = applicationEvaluationRepository.save(entity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update Application Evaluation" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldApplicationEvaluation).newData(entity).build());
|
||||||
|
|
||||||
if (status != null) {
|
if (status != null) {
|
||||||
ApplicationEntity application = applicationService.validateApplication(assignedApplications.get().getApplication().getId());
|
ApplicationEntity application = applicationService.validateApplication(assignedApplications.get().getApplication().getId());
|
||||||
AssignedApplicationsEntity assignedApplicationsEntity = assignedApplications.get();
|
AssignedApplicationsEntity assignedApplicationsEntity = assignedApplications.get();
|
||||||
@@ -944,7 +956,7 @@ public class ApplicationEvaluationDao {
|
|||||||
response.setBeneficiary(beneficiary);
|
response.setBeneficiary(beneficiary);
|
||||||
|
|
||||||
response.setCallName(application.getCall().getName() != null ? application.getCall().getName() : null);
|
response.setCallName(application.getCall().getName() != null ? application.getCall().getName() : null);
|
||||||
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
response.setProtocolNumber((application.getProtocol() != null && application.getProtocol().getProtocolNumber() != null) ? application.getProtocol().getProtocolNumber() : null);
|
||||||
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
||||||
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
||||||
|
|
||||||
@@ -1297,13 +1309,21 @@ public class ApplicationEvaluationDao {
|
|||||||
public void deleteById(Long id) {
|
public void deleteById(Long id) {
|
||||||
|
|
||||||
ApplicationEvaluationEntity applicationEvaluationEntity = validateApplicationEvaluation(id);
|
ApplicationEvaluationEntity applicationEvaluationEntity = validateApplicationEvaluation(id);
|
||||||
|
ApplicationEvaluationEntity oldApplicationEvaluation = Utils.getClonedEntityForData(applicationEvaluationEntity);
|
||||||
applicationEvaluationEntity.setIsDeleted(true);
|
applicationEvaluationEntity.setIsDeleted(true);
|
||||||
saveApplicationEvaluationEntity(applicationEvaluationEntity);
|
saveApplicationEvaluationEntity(applicationEvaluationEntity, oldApplicationEvaluation);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationEntity saveApplicationEvaluationEntity(ApplicationEvaluationEntity applicationEvaluationEntityData) {
|
public ApplicationEvaluationEntity saveApplicationEvaluationEntity(ApplicationEvaluationEntity applicationEvaluationEntityData, ApplicationEvaluationEntity oldApplicationEvaluation) {
|
||||||
|
|
||||||
return applicationEvaluationRepository.save(applicationEvaluationEntityData);
|
ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationRepository.save(applicationEvaluationEntityData);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Delete Application Evaluation" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldApplicationEvaluation).newData(applicationEvaluationEntityData)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
return applicationEvaluationEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(ApplicationEntity application, AssignedApplicationsEntity assignedApplicationsEntity,
|
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(ApplicationEntity application, AssignedApplicationsEntity assignedApplicationsEntity,
|
||||||
@@ -1318,8 +1338,16 @@ public class ApplicationEvaluationDao {
|
|||||||
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
||||||
// UserEntity userEntity = userService.validateUser(application.getUserId());
|
// UserEntity userEntity = userService.validateUser(application.getUserId());
|
||||||
// callService.validatePublishedCall(application.getCall().getId(), userEntity.getHub().getId());
|
// callService.validatePublishedCall(application.getCall().getId(), userEntity.getHub().getId());
|
||||||
|
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(application);
|
||||||
application.setStatus(newStatus.getValue());
|
application.setStatus(newStatus.getValue());
|
||||||
application = applicationRepository.save(application);
|
application = applicationRepository.save(application);
|
||||||
|
|
||||||
|
/** 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(application).build());
|
||||||
|
|
||||||
|
ApplicationEvaluationEntity oldApplicationEvaluation = Utils.getClonedEntityForData(existingEntity);
|
||||||
|
AssignedApplicationsEntity oldAssignedApplication = Utils.getClonedEntityForData(assignedApplicationsEntity);
|
||||||
|
|
||||||
String statusType = application.getStatus();
|
String statusType = application.getStatus();
|
||||||
if (application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue())) {
|
if (application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue())) {
|
||||||
existingEntity.setStatus(ApplicationEvaluationStatusTypeEnum.CLOSE.getValue());
|
existingEntity.setStatus(ApplicationEvaluationStatusTypeEnum.CLOSE.getValue());
|
||||||
@@ -1328,9 +1356,24 @@ public class ApplicationEvaluationDao {
|
|||||||
entity = applicationEvaluationRepository.save(existingEntity);
|
entity = applicationEvaluationRepository.save(existingEntity);
|
||||||
assignedApplicationsRepository.save(assignedApplicationsEntity);
|
assignedApplicationsRepository.save(assignedApplicationsEntity);
|
||||||
|
|
||||||
|
if (application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue())) {
|
||||||
|
|
||||||
|
/** 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(oldApplicationEvaluation).newData(entity).build());
|
||||||
|
|
||||||
|
/** 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());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
List<ApplicationAmendmentRequestEntity> amendmentRequest = applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndIsDeletedFalse(entity.getId());
|
List<ApplicationAmendmentRequestEntity> amendmentRequest = applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndIsDeletedFalse(entity.getId());
|
||||||
for (ApplicationAmendmentRequestEntity request : amendmentRequest) {
|
for (ApplicationAmendmentRequestEntity amendment : amendmentRequest) {
|
||||||
request.setStatus(ApplicationAmendmentRequestEnum.CLOSE.getValue());
|
ApplicationAmendmentRequestEntity oldAmendment = Utils.getClonedEntityForData(amendment);
|
||||||
|
amendment.setStatus(ApplicationAmendmentRequestEnum.CLOSE.getValue());
|
||||||
|
|
||||||
|
/** 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(oldAmendment).newData(amendment).build());
|
||||||
|
|
||||||
}
|
}
|
||||||
applicationAmendmentRequestRepository.saveAll(amendmentRequest);
|
applicationAmendmentRequestRepository.saveAll(amendmentRequest);
|
||||||
if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.APPROVED.getValue())))) {
|
if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.APPROVED.getValue())))) {
|
||||||
|
|||||||
@@ -1,21 +1,27 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
import jakarta.persistence.criteria.Predicate;
|
import jakarta.persistence.criteria.Predicate;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||||
import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity;
|
import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
|
import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
|
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
|
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
|
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
|
||||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.AssignedApplicationsRepository;
|
import net.gepafin.tendermanagement.repositories.AssignedApplicationsRepository;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationService;
|
import net.gepafin.tendermanagement.service.ApplicationService;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
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.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
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.ResourceNotFoundException;
|
||||||
@@ -48,9 +54,16 @@ public class AssignedApplicationsDao {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationEvaluationDao applicationEvaluationDao;
|
private ApplicationEvaluationDao applicationEvaluationDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public AssignedApplicationsResponse createAssignedApplications(Long applicationId, Long userId, UserEntity assignedByUser, AssignedApplicationsRequest assignedApplicationsRequest) {
|
public AssignedApplicationsResponse createAssignedApplications(Long applicationId, Long userId, UserEntity assignedByUser, AssignedApplicationsRequest assignedApplicationsRequest) {
|
||||||
log.info("Assigning application to pre-Instructor with details: {}", applicationId, userId);
|
log.info("Assigning application to pre-Instructor with details: {}", applicationId, userId);
|
||||||
|
|
||||||
@@ -67,8 +80,13 @@ public class AssignedApplicationsDao {
|
|||||||
Translator.toLocale(GepafinConstant.INVALID_APPLICATION_STATUS)
|
Translator.toLocale(GepafinConstant.INVALID_APPLICATION_STATUS)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(application);
|
||||||
application.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue());
|
application.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue());
|
||||||
applicationRepository.save(application);
|
applicationRepository.save(application);
|
||||||
|
|
||||||
|
/** 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(application).build());
|
||||||
|
|
||||||
UserEntity user = userService.validateUser(userId);
|
UserEntity user = userService.validateUser(userId);
|
||||||
AssignedApplicationsEntity assignment = createAssignmentEntity(application, user.getId(), assignedByUser, assignedApplicationsRequest);
|
AssignedApplicationsEntity assignment = createAssignmentEntity(application, user.getId(), assignedByUser, assignedApplicationsRequest);
|
||||||
AssignedApplicationsResponse assignApplicationToInstructorResponse = convertEntityToResponse(assignment);
|
AssignedApplicationsResponse assignApplicationToInstructorResponse = convertEntityToResponse(assignment);
|
||||||
@@ -89,12 +107,18 @@ public class AssignedApplicationsDao {
|
|||||||
assignApplication.setNote(assignedApplicationsRequest.getNote());
|
assignApplication.setNote(assignedApplicationsRequest.getNote());
|
||||||
assignApplication.setIsDeleted(false);
|
assignApplication.setIsDeleted(false);
|
||||||
assignApplication.setAssignedAt(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
assignApplication.setAssignedAt(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
AssignedApplicationsEntity assignedApplicationsEntity = saveAssignedApplication(assignApplication);
|
|
||||||
|
AssignedApplicationsEntity assignedApplicationsEntity = saveAssignedApplication(assignApplication, null, VersionActionTypeEnum.INSERT);
|
||||||
return assignedApplicationsEntity;
|
return assignedApplicationsEntity;
|
||||||
|
|
||||||
}
|
}
|
||||||
public AssignedApplicationsEntity saveAssignedApplication(AssignedApplicationsEntity assignedApplicationsEntity){
|
|
||||||
|
public AssignedApplicationsEntity saveAssignedApplication(AssignedApplicationsEntity assignedApplicationsEntity, AssignedApplicationsEntity oldAssignedApplicationEntity, VersionActionTypeEnum actionTypeEnum) {
|
||||||
AssignedApplicationsEntity assignedApplication = assignedApplicationsRepository.save(assignedApplicationsEntity);
|
AssignedApplicationsEntity assignedApplication = assignedApplicationsRepository.save(assignedApplicationsEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create Application" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionTypeEnum).oldData(oldAssignedApplicationEntity).newData(assignedApplication).build());
|
||||||
|
|
||||||
return assignedApplication;
|
return assignedApplication;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,8 +174,9 @@ public class AssignedApplicationsDao {
|
|||||||
log.info("Deleting assigned application with ID: {}", id);
|
log.info("Deleting assigned application with ID: {}", id);
|
||||||
AssignedApplicationsEntity assignedApplicationsEntity = validateAssignedApplication(id);
|
AssignedApplicationsEntity assignedApplicationsEntity = validateAssignedApplication(id);
|
||||||
validator.validatePreInstructor(request, assignedApplicationsEntity.getUserId());
|
validator.validatePreInstructor(request, assignedApplicationsEntity.getUserId());
|
||||||
|
AssignedApplicationsEntity oldAssignedApplicationEntity = Utils.getClonedEntityForData(assignedApplicationsEntity);
|
||||||
assignedApplicationsEntity.setIsDeleted(true);
|
assignedApplicationsEntity.setIsDeleted(true);
|
||||||
assignedApplicationsEntity= saveAssignedApplication(assignedApplicationsEntity);
|
assignedApplicationsEntity = saveAssignedApplication(assignedApplicationsEntity, oldAssignedApplicationEntity, VersionActionTypeEnum.SOFT_DELETE);
|
||||||
log.info("Assigned Application deleted with ID: {}", id);
|
log.info("Assigned Application deleted with ID: {}", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,13 +216,16 @@ public class AssignedApplicationsDao {
|
|||||||
log.info("Updating assigned application with ID: {}", id);
|
log.info("Updating assigned application with ID: {}", id);
|
||||||
AssignedApplicationsEntity existingAssignment = validateAssignedApplication(id);
|
AssignedApplicationsEntity existingAssignment = validateAssignedApplication(id);
|
||||||
validator.validatePreInstructor(request, existingAssignment.getUserId());
|
validator.validatePreInstructor(request, existingAssignment.getUserId());
|
||||||
|
|
||||||
|
AssignedApplicationsEntity oldAssignedApplicationEntity = Utils.getClonedEntityForData(existingAssignment);
|
||||||
|
|
||||||
setIfUpdated(existingAssignment::getNote, existingAssignment::setNote, updateRequest.getNote());
|
setIfUpdated(existingAssignment::getNote, existingAssignment::setNote, updateRequest.getNote());
|
||||||
setIfUpdated(existingAssignment::getStatus, existingAssignment::setStatus, updateRequest.getStatus().name());
|
setIfUpdated(existingAssignment::getStatus, existingAssignment::setStatus, updateRequest.getStatus().name());
|
||||||
setIfUpdated(existingAssignment::getAssignedBy, existingAssignment::setAssignedBy, updatedByUser.getId());
|
setIfUpdated(existingAssignment::getAssignedBy, existingAssignment::setAssignedBy, updatedByUser.getId());
|
||||||
|
|
||||||
existingAssignment.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
existingAssignment.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
|
|
||||||
AssignedApplicationsEntity updatedAssignment = saveAssignedApplication(existingAssignment);
|
AssignedApplicationsEntity updatedAssignment = saveAssignedApplication(existingAssignment, oldAssignedApplicationEntity, VersionActionTypeEnum.UPDATE);
|
||||||
AssignedApplicationsResponse response = convertEntityToResponse(updatedAssignment);
|
AssignedApplicationsResponse response = convertEntityToResponse(updatedAssignment);
|
||||||
log.info("Assigned application updated successfully: {}", response);
|
log.info("Assigned application updated successfully: {}", response);
|
||||||
return response;
|
return response;
|
||||||
|
|||||||
@@ -2,13 +2,18 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
|
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||||
import net.gepafin.tendermanagement.entities.BeneficiaryPreferredCallEntity;
|
import net.gepafin.tendermanagement.entities.BeneficiaryPreferredCallEntity;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
import net.gepafin.tendermanagement.enums.BeneficiaryCallStatus;
|
import net.gepafin.tendermanagement.enums.BeneficiaryCallStatus;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.BeneficiaryPreferredCallReq;
|
import net.gepafin.tendermanagement.model.request.BeneficiaryPreferredCallReq;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.BeneficiaryPreferredCallResponseBean;
|
import net.gepafin.tendermanagement.model.response.BeneficiaryPreferredCallResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.BeneficiaryPreferredCallRepository;
|
import net.gepafin.tendermanagement.repositories.BeneficiaryPreferredCallRepository;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
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.ResourceNotFoundException;
|
||||||
@@ -36,6 +41,11 @@ public class BeneficiaryPreferredCallDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
public BeneficiaryPreferredCallResponseBean createBeneficiaryPreferredCall(HttpServletRequest httpServletRequest, BeneficiaryPreferredCallReq request, UserEntity user) {
|
public BeneficiaryPreferredCallResponseBean createBeneficiaryPreferredCall(HttpServletRequest httpServletRequest, BeneficiaryPreferredCallReq request, UserEntity user) {
|
||||||
log.info("Creating new beneficiary preferred call with details: {}", request);
|
log.info("Creating new beneficiary preferred call with details: {}", request);
|
||||||
@@ -51,6 +61,10 @@ public class BeneficiaryPreferredCallDao {
|
|||||||
|
|
||||||
BeneficiaryPreferredCallEntity entity = convertRequestToEntity(request, user);
|
BeneficiaryPreferredCallEntity entity = convertRequestToEntity(request, user);
|
||||||
entity = beneficiaryPreferredCallRepository.save(entity);
|
entity = beneficiaryPreferredCallRepository.save(entity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "Create Beneficiary Preferred Call" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(httpServletRequest).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(entity).build());
|
||||||
|
|
||||||
log.info("Beneficiary preferred call created with ID: {}", entity.getId());
|
log.info("Beneficiary preferred call created with ID: {}", entity.getId());
|
||||||
return convertEntityToResponse(entity);
|
return convertEntityToResponse(entity);
|
||||||
}
|
}
|
||||||
@@ -92,8 +106,14 @@ public class BeneficiaryPreferredCallDao {
|
|||||||
log.info("Soft deleting beneficiary preferred call with ID: {}", id);
|
log.info("Soft deleting beneficiary preferred call with ID: {}", id);
|
||||||
BeneficiaryPreferredCallEntity entity = validateBeneficiaryPreferredCall(id);
|
BeneficiaryPreferredCallEntity entity = validateBeneficiaryPreferredCall(id);
|
||||||
validator.validateUserId(request, entity.getUserId());
|
validator.validateUserId(request, entity.getUserId());
|
||||||
|
BeneficiaryPreferredCallEntity oldBeneficiaryPreferredCallEntity = Utils.getClonedEntityForData(entity);
|
||||||
entity.setIsDeleted(true);
|
entity.setIsDeleted(true);
|
||||||
beneficiaryPreferredCallRepository.save(entity);
|
beneficiaryPreferredCallRepository.save(entity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Delete Beneficiary Preferred Call" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldBeneficiaryPreferredCallEntity).newData(entity).build());
|
||||||
|
|
||||||
log.info("Beneficiary preferred call soft deleted with ID: {}", id);
|
log.info("Beneficiary preferred call soft deleted with ID: {}", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,8 +150,13 @@ public class BeneficiaryPreferredCallDao {
|
|||||||
public void updateBeneficiaryPreferredCallStatus(Long id, BeneficiaryCallStatus status) {
|
public void updateBeneficiaryPreferredCallStatus(Long id, BeneficiaryCallStatus status) {
|
||||||
log.info("Updating status for beneficiary preferred call with ID: {}", id);
|
log.info("Updating status for beneficiary preferred call with ID: {}", id);
|
||||||
BeneficiaryPreferredCallEntity existingEntity = validateBeneficiaryPreferredCall(id);
|
BeneficiaryPreferredCallEntity existingEntity = validateBeneficiaryPreferredCall(id);
|
||||||
|
BeneficiaryPreferredCallEntity oldBeneficiaryPreferredCallEntity = Utils.getClonedEntityForData(existingEntity);
|
||||||
existingEntity.setStatus(status.getValue());
|
existingEntity.setStatus(status.getValue());
|
||||||
beneficiaryPreferredCallRepository.save(existingEntity);
|
beneficiaryPreferredCallRepository.save(existingEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update Application" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(httpServletRequest).actionType(VersionActionTypeEnum.UPDATE).oldData(oldBeneficiaryPreferredCallEntity).newData(existingEntity).build());
|
||||||
|
|
||||||
log.info("Beneficiary preferred call status updated with ID: {}", existingEntity.getId());
|
log.info("Beneficiary preferred call status updated with ID: {}", existingEntity.getId());
|
||||||
}
|
}
|
||||||
public List<BeneficiaryPreferredCallResponseBean> getBeneficiaryPreferredCallByUserId(UserEntity userEntity, Long companyId) {
|
public List<BeneficiaryPreferredCallResponseBean> getBeneficiaryPreferredCallByUserId(UserEntity userEntity, Long companyId) {
|
||||||
|
|||||||
@@ -15,15 +15,19 @@ import java.util.zip.ZipOutputStream;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
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.model.response.*;
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.repositories.*;
|
||||||
import net.gepafin.tendermanagement.service.*;
|
import net.gepafin.tendermanagement.service.*;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import org.h2.util.IOUtils;
|
import org.h2.util.IOUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
@@ -95,15 +99,18 @@ public class CallDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, UserEntity userEntity) {
|
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, UserEntity userEntity) {
|
||||||
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
|
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
|
||||||
CallEntity callEntity = convertToCallEntity(createCallRequest, userEntity);
|
CallEntity callEntity = convertToCallEntity(createCallRequest, userEntity);
|
||||||
|
|
||||||
updateFaq(createCallRequest.getFaq(), callEntity, userEntity,LookUpDataTypeEnum.FAQ);
|
updateFaq(createCallRequest.getFaq(), callEntity, userEntity,LookUpDataTypeEnum.FAQ);
|
||||||
|
updateLookUpData(callEntity, createCallRequest.getAimedTo(), LookUpDataTypeEnum.AIMED_TO);
|
||||||
convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
|
||||||
LookUpDataTypeEnum.AIMED_TO);
|
|
||||||
|
|
||||||
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
||||||
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
||||||
@@ -180,6 +187,9 @@ public class CallDao {
|
|||||||
callEntity.setEndTime(DateTimeUtil.parseTime(createCallRequest.getEndTime()));
|
callEntity.setEndTime(DateTimeUtil.parseTime(createCallRequest.getEndTime()));
|
||||||
callEntity.setHub(userEntity.getHub());
|
callEntity.setHub(userEntity.getHub());
|
||||||
callEntity = callRepository.save(callEntity);
|
callEntity = callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create Call" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(callEntity).build());
|
||||||
return callEntity;
|
return callEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,40 +207,63 @@ public class CallDao {
|
|||||||
|
|
||||||
List<EvaluationCriteriaEntity> evaluationCriteriaEntities = criteriaReqList.stream()
|
List<EvaluationCriteriaEntity> evaluationCriteriaEntities = criteriaReqList.stream()
|
||||||
.map(req -> convertToEvaluationCriteriaEntity(req, callEntity, type)).collect(Collectors.toList());
|
.map(req -> convertToEvaluationCriteriaEntity(req, callEntity, type)).collect(Collectors.toList());
|
||||||
evaluationCriteriaRepository.saveAll(evaluationCriteriaEntities);
|
|
||||||
return evaluationCriteriaEntities;
|
return evaluationCriteriaEntities;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void softDeleteEvaluationCriteria(EvaluationCriteriaEntity evaluationCriteriaEntity) {
|
private void softDeleteEvaluationCriteria(EvaluationCriteriaEntity evaluationCriteriaEntity) {
|
||||||
|
EvaluationCriteriaEntity oldEvaluationCriteriaEntity = Utils.getClonedEntityForData(evaluationCriteriaEntity);
|
||||||
evaluationCriteriaEntity.setIsDeleted(true);
|
evaluationCriteriaEntity.setIsDeleted(true);
|
||||||
evaluationCriteriaRepository.save(evaluationCriteriaEntity);
|
evaluationCriteriaRepository.save(evaluationCriteriaEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft delete evaluation criteria" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldEvaluationCriteriaEntity).newData(evaluationCriteriaEntity).build());
|
||||||
|
|
||||||
List<CriteriaFormFieldEntity> list = criteriaFormFieldRepository
|
List<CriteriaFormFieldEntity> list = criteriaFormFieldRepository
|
||||||
.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId())
|
.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId());
|
||||||
.stream()
|
|
||||||
.peek(data -> data.setIsDeleted(Boolean.TRUE))
|
if(Boolean.FALSE.equals(CollectionUtils.isEmpty(list))) {
|
||||||
.toList();
|
|
||||||
|
list.stream().peek(data->{
|
||||||
|
CriteriaFormFieldEntity oldCriteriaFormFieldEntity = Utils.getClonedEntityForData(data);
|
||||||
|
data.setIsDeleted(Boolean.TRUE);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft delete criteria form field" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldCriteriaFormFieldEntity).newData(data).build());
|
||||||
|
});
|
||||||
criteriaFormFieldRepository.saveAll(list);
|
criteriaFormFieldRepository.saveAll(list);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq,
|
private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq,
|
||||||
CallEntity callEntity, LookUpDataTypeEnum type) {
|
CallEntity callEntity, LookUpDataTypeEnum type) {
|
||||||
EvaluationCriteriaEntity criteriaEntity = null;
|
EvaluationCriteriaEntity criteriaEntity = null;
|
||||||
|
EvaluationCriteriaEntity oldCriteriaEntity = null;
|
||||||
|
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||||
LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(criteriaReq, type);
|
LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(criteriaReq, type);
|
||||||
if (criteriaReq.getId() != null && criteriaReq.getId() > 0) {
|
if (criteriaReq.getId() != null && criteriaReq.getId() > 0) {
|
||||||
criteriaEntity = evaluationCriteriaRepository.findById(criteriaReq.getId())
|
criteriaEntity = evaluationCriteriaRepository.findById(criteriaReq.getId())
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
||||||
|
oldCriteriaEntity = Utils.getClonedEntityForData(oldCriteriaEntity);
|
||||||
|
actionType = VersionActionTypeEnum.UPDATE;
|
||||||
} else {
|
} else {
|
||||||
criteriaEntity = new EvaluationCriteriaEntity();
|
criteriaEntity = new EvaluationCriteriaEntity();
|
||||||
criteriaEntity.setCall(callEntity);
|
criteriaEntity.setCall(callEntity);
|
||||||
criteriaEntity.setLookupData(lookupDataEntity);
|
criteriaEntity.setLookupData(lookupDataEntity);
|
||||||
criteriaEntity.setScore(0L);
|
criteriaEntity.setScore(0L);
|
||||||
criteriaEntity.setIsDeleted(false);
|
criteriaEntity.setIsDeleted(false);
|
||||||
|
actionType = VersionActionTypeEnum.INSERT;
|
||||||
}
|
}
|
||||||
setIfUpdated(criteriaEntity::getScore, criteriaEntity::setScore, criteriaReq.getScore());
|
setIfUpdated(criteriaEntity::getScore, criteriaEntity::setScore, criteriaReq.getScore());
|
||||||
if (Boolean.FALSE.equals(criteriaEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) {
|
if (Boolean.FALSE.equals(criteriaEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) {
|
||||||
criteriaEntity.setLookupData(lookupDataEntity);
|
criteriaEntity.setLookupData(lookupDataEntity);
|
||||||
}
|
}
|
||||||
|
criteriaEntity = evaluationCriteriaRepository.save(criteriaEntity) ;
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "create or update evaluation criteria" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldCriteriaEntity).newData(criteriaEntity).build());
|
||||||
return criteriaEntity;
|
return criteriaEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,13 +284,18 @@ public class CallDao {
|
|||||||
.forEach(this::softDeleteDocument);
|
.forEach(this::softDeleteDocument);
|
||||||
List<DocumentEntity> documentEntities = documentReqList.stream()
|
List<DocumentEntity> documentEntities = documentReqList.stream()
|
||||||
.map(req -> convertToDocumentEntity(req, sourceId)).collect(Collectors.toList());
|
.map(req -> convertToDocumentEntity(req, sourceId)).collect(Collectors.toList());
|
||||||
documentRepository.saveAll(documentEntities);
|
// documentRepository.saveAll(documentEntities);
|
||||||
return documentEntities;
|
return documentEntities;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void softDeleteDocument(DocumentEntity documentEntity) {
|
private void softDeleteDocument(DocumentEntity documentEntity) {
|
||||||
|
DocumentEntity oldDocumentEntity = Utils.getClonedEntityForData(documentEntity);
|
||||||
documentEntity.setIsDeleted(true);
|
documentEntity.setIsDeleted(true);
|
||||||
documentRepository.save(documentEntity);
|
documentEntity = documentRepository.save(documentEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft delete for document" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldDocumentEntity).newData(documentEntity).build());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -380,32 +418,37 @@ public class CallDao {
|
|||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<LookUpDataResponse> convertLookUpDataEntities(List<LookUpDataReq> lookUpData, CallEntity callEntity,
|
// public List<LookUpDataResponse> convertLookUpDataEntities(List<LookUpDataReq> lookUpData, CallEntity callEntity,
|
||||||
LookUpDataEntity.LookUpDataTypeEnum type) {
|
// LookUpDataEntity.LookUpDataTypeEnum type) {
|
||||||
if(lookUpData == null) {
|
// if(lookUpData == null) {
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
List<LookUpDataEntity> lookUpDataEntities = lookUpData.stream()
|
// List<LookUpDataEntity> lookUpDataEntities = lookUpData.stream()
|
||||||
.map(req -> lookUpDataService.getOrCreateLookUpDataEntity(req, type)).collect(Collectors.toList());
|
// .map(req -> lookUpDataService.getOrCreateLookUpDataEntity(req, type)).collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// return createCallTargetAudienceCheckList(callEntity, lookUpDataEntities);
|
||||||
|
// }
|
||||||
|
|
||||||
return createCallTargetAudienceCheckList(callEntity, lookUpDataEntities);
|
// private List<LookUpDataResponse> createCallTargetAudienceCheckList(CallEntity callEntity,
|
||||||
}
|
// List<LookUpDataEntity> lookUpDataEntities) {
|
||||||
|
// List<LookUpDataResponse> lookUpDataResponses = new ArrayList<>();
|
||||||
private List<LookUpDataResponse> createCallTargetAudienceCheckList(CallEntity callEntity,
|
// for (LookUpDataEntity lookUpDataEntity : lookUpDataEntities) {
|
||||||
List<LookUpDataEntity> lookUpDataEntities) {
|
// CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity = new CallTargetAudienceChecklistEntity();
|
||||||
List<LookUpDataResponse> lookUpDataResponses = new ArrayList<>();
|
// callTargetAudienceChecklistEntity.setIsValidated(false);
|
||||||
for (LookUpDataEntity lookUpDataEntity : lookUpDataEntities) {
|
// callTargetAudienceChecklistEntity.setLookupData(lookUpDataEntity);
|
||||||
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity = new CallTargetAudienceChecklistEntity();
|
// callTargetAudienceChecklistEntity.setCall(callEntity);
|
||||||
callTargetAudienceChecklistEntity.setIsValidated(false);
|
// callTargetAudienceChecklistEntity.setIsDeleted(false);
|
||||||
callTargetAudienceChecklistEntity.setLookupData(lookUpDataEntity);
|
// callTargetAudienceChecklistEntity = callTargetAudienceChecklistRepository
|
||||||
callTargetAudienceChecklistEntity.setCall(callEntity);
|
// .save(callTargetAudienceChecklistEntity);
|
||||||
callTargetAudienceChecklistEntity.setIsDeleted(false);
|
// versionHistoryRequest.setOldData(null);
|
||||||
callTargetAudienceChecklistEntity = callTargetAudienceChecklistRepository
|
// versionHistoryRequest.setNewData(callTargetAudienceChecklistEntity);
|
||||||
.save(callTargetAudienceChecklistEntity);
|
// versionHistoryRequest.setActionType(VersionActionTypeEnum.INSERT);
|
||||||
lookUpDataResponses.add(convertToLookUpDataResponseBean(callTargetAudienceChecklistEntity));
|
// versionHistoryRequest.setRequest(request);
|
||||||
}
|
// loggingUtil.addVersionHistory(versionHistoryRequest);
|
||||||
return lookUpDataResponses;
|
// lookUpDataResponses.add(convertToLookUpDataResponseBean(callTargetAudienceChecklistEntity));
|
||||||
}
|
// }
|
||||||
|
// return lookUpDataResponses;
|
||||||
|
// }
|
||||||
|
|
||||||
public LookUpDataResponse convertToLookUpDataResponseBean(
|
public LookUpDataResponse convertToLookUpDataResponseBean(
|
||||||
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
||||||
@@ -453,8 +496,14 @@ public class CallDao {
|
|||||||
|
|
||||||
public CallResponse createCallStep2(CallEntity callEntity, CreateCallRequestStep2 createCallRequest, UserEntity user) {
|
public CallResponse createCallStep2(CallEntity callEntity, CreateCallRequestStep2 createCallRequest, UserEntity user) {
|
||||||
// validateUpdate(callEntity);
|
// validateUpdate(callEntity);
|
||||||
|
if(createCallRequest.getThreshold() != null && Boolean.FALSE.equals(createCallRequest.getThreshold().equals(callEntity.getThreshold()))) {
|
||||||
|
CallEntity oldCallEntity = Utils.getClonedEntityForData(callEntity);
|
||||||
setIfUpdated(callEntity::getThreshold, callEntity::setThreshold, createCallRequest.getThreshold());
|
setIfUpdated(callEntity::getThreshold, callEntity::setThreshold, createCallRequest.getThreshold());
|
||||||
callRepository.save(callEntity);
|
callEntity = callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "update call step 2" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallEntity).newData(callEntity).build());
|
||||||
|
}
|
||||||
convertToEvaluationCriteriaEntities(createCallRequest.getCriteria(), callEntity, LookUpDataTypeEnum.EVALUATION_CRITERIA);
|
convertToEvaluationCriteriaEntities(createCallRequest.getCriteria(), callEntity, LookUpDataTypeEnum.EVALUATION_CRITERIA);
|
||||||
|
|
||||||
convertToDocumentEntities(createCallRequest.getDocs(), callEntity.getId(), DocumentTypeEnum.DOCUMENT);
|
convertToDocumentEntities(createCallRequest.getDocs(), callEntity.getId(), DocumentTypeEnum.DOCUMENT);
|
||||||
@@ -463,14 +512,6 @@ public class CallDao {
|
|||||||
|
|
||||||
updateLookUpData(callEntity, createCallRequest.getCheckList(), LookUpDataTypeEnum.CHECKLIST);
|
updateLookUpData(callEntity, createCallRequest.getCheckList(), LookUpDataTypeEnum.CHECKLIST);
|
||||||
|
|
||||||
// List<FaqEntity> faqEntities = faqRepository.findByCallIdAndIsDeletedFalse(callEntity.getId());
|
|
||||||
// List<LookUpDataResponse> amiedTo = callTargetAudienceChecklistRepository
|
|
||||||
// .findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), LookUpDataTypeEnum.AIMED_TO.getValue()).stream()
|
|
||||||
// .map(this::convertToLookUpDataResponseBean).toList();
|
|
||||||
// createCallResponseBean = assembleCreateCallResponseBean(callEntity, evaluationCriteriaEntities,
|
|
||||||
// documentEntities, faqEntities, imageEntities);
|
|
||||||
// createCallResponseBean.setAimedTo(amiedTo);
|
|
||||||
// createCallResponseBean.setCheckList(checkList);
|
|
||||||
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
||||||
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_2);
|
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_2);
|
||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
@@ -512,6 +553,7 @@ public class CallDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public CallResponse updateCallStep1(CallEntity callEntity, UpdateCallRequestStep1 updateCallRequest, UserEntity userEntity) {
|
public CallResponse updateCallStep1(CallEntity callEntity, UpdateCallRequestStep1 updateCallRequest, UserEntity userEntity) {
|
||||||
|
CallEntity oldCallEntity = Utils.getClonedEntityForData(callEntity);
|
||||||
isValidDateRange(updateCallRequest, callEntity);
|
isValidDateRange(updateCallRequest, callEntity);
|
||||||
setIfUpdated(callEntity::getName, callEntity::setName, updateCallRequest.getName());
|
setIfUpdated(callEntity::getName, callEntity::setName, updateCallRequest.getName());
|
||||||
setIfUpdated(callEntity::getDescriptionShort, callEntity::setDescriptionShort,
|
setIfUpdated(callEntity::getDescriptionShort, callEntity::setDescriptionShort,
|
||||||
@@ -547,6 +589,11 @@ public class CallDao {
|
|||||||
setIfUpdated(callEntity::getStartTime, callEntity::setStartTime, DateTimeUtil.parseTime(updateCallRequest.getStartTime()));
|
setIfUpdated(callEntity::getStartTime, callEntity::setStartTime, DateTimeUtil.parseTime(updateCallRequest.getStartTime()));
|
||||||
setIfUpdated(callEntity::getEndTime, callEntity::setEndTime, DateTimeUtil.parseTime(updateCallRequest.getEndTime()));
|
setIfUpdated(callEntity::getEndTime, callEntity::setEndTime, DateTimeUtil.parseTime(updateCallRequest.getEndTime()));
|
||||||
setIfUpdated(callEntity::getConfidi, callEntity::setConfidi, updateCallRequest.getConfidi());
|
setIfUpdated(callEntity::getConfidi, callEntity::setConfidi, updateCallRequest.getConfidi());
|
||||||
|
callEntity = callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "update call step 1" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallEntity).newData(callEntity).build());
|
||||||
|
|
||||||
updateLookUpData(callEntity, updateCallRequest.getAimedTo(), LookUpDataTypeEnum.AIMED_TO);
|
updateLookUpData(callEntity, updateCallRequest.getAimedTo(), LookUpDataTypeEnum.AIMED_TO);
|
||||||
updateFaq(updateCallRequest.getFaq(), callEntity, userEntity, LookUpDataTypeEnum.FAQ);
|
updateFaq(updateCallRequest.getFaq(), callEntity, userEntity, LookUpDataTypeEnum.FAQ);
|
||||||
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
||||||
@@ -555,8 +602,14 @@ public class CallDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void softDeleteFaq(FaqEntity faqEntity) {
|
private void softDeleteFaq(FaqEntity faqEntity) {
|
||||||
|
|
||||||
|
FaqEntity oldFaqEntity = Utils.getClonedEntityForData(faqEntity);
|
||||||
|
|
||||||
faqEntity.setIsDeleted(true);
|
faqEntity.setIsDeleted(true);
|
||||||
faqRepository.save(faqEntity);
|
faqRepository.save(faqEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft delete faq" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldFaqEntity).newData(faqEntity).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateLookUpData(CallEntity callEntity, List<LookUpDataReq> lookupDataReqList, LookUpDataTypeEnum type) {
|
private void updateLookUpData(CallEntity callEntity, List<LookUpDataReq> lookupDataReqList, LookUpDataTypeEnum type) {
|
||||||
@@ -576,6 +629,8 @@ public class CallDao {
|
|||||||
private void createOrUpdateCallTargetAudienceChecklist(LookUpDataReq lookUpDataReq, CallEntity callEntity,
|
private void createOrUpdateCallTargetAudienceChecklist(LookUpDataReq lookUpDataReq, CallEntity callEntity,
|
||||||
LookUpDataTypeEnum type) {
|
LookUpDataTypeEnum type) {
|
||||||
CallTargetAudienceChecklistEntity checklistEntity = null;
|
CallTargetAudienceChecklistEntity checklistEntity = null;
|
||||||
|
CallTargetAudienceChecklistEntity oldChecklistEntity = null;
|
||||||
|
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||||
LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(lookUpDataReq, type);
|
LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(lookUpDataReq, type);
|
||||||
if (lookUpDataReq.getId() != null && lookUpDataReq.getId() > 0) {
|
if (lookUpDataReq.getId() != null && lookUpDataReq.getId() > 0) {
|
||||||
checklistEntity = callTargetAudienceChecklistRepository.findById(lookUpDataReq.getId())
|
checklistEntity = callTargetAudienceChecklistRepository.findById(lookUpDataReq.getId())
|
||||||
@@ -585,21 +640,31 @@ public class CallDao {
|
|||||||
if (Boolean.FALSE.equals(checklistEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) {
|
if (Boolean.FALSE.equals(checklistEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) {
|
||||||
checklistEntity.setLookupData(lookupDataEntity);
|
checklistEntity.setLookupData(lookupDataEntity);
|
||||||
}
|
}
|
||||||
|
oldChecklistEntity = Utils.getClonedEntityForData(checklistEntity);
|
||||||
|
actionType = VersionActionTypeEnum.UPDATE;
|
||||||
} else {
|
} else {
|
||||||
checklistEntity = new CallTargetAudienceChecklistEntity();
|
checklistEntity = new CallTargetAudienceChecklistEntity();
|
||||||
checklistEntity.setCall(callEntity);
|
checklistEntity.setCall(callEntity);
|
||||||
checklistEntity.setLookupData(lookupDataEntity);
|
checklistEntity.setLookupData(lookupDataEntity);
|
||||||
checklistEntity.setIsValidated(false);
|
checklistEntity.setIsValidated(false);
|
||||||
checklistEntity.setIsDeleted(false);
|
checklistEntity.setIsDeleted(false);
|
||||||
|
actionType = VersionActionTypeEnum.INSERT;
|
||||||
}
|
}
|
||||||
|
|
||||||
callTargetAudienceChecklistRepository.save(checklistEntity);
|
checklistEntity = callTargetAudienceChecklistRepository.save(checklistEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "create or update aimedTo Checklist" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldChecklistEntity).newData(checklistEntity).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void softDeleteCallTargetAudienceChecklist(
|
private void softDeleteCallTargetAudienceChecklist(
|
||||||
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
||||||
|
CallTargetAudienceChecklistEntity oldCallTargetAudienceChecklistEntity = Utils.getClonedEntityForData(callTargetAudienceChecklistEntity);
|
||||||
callTargetAudienceChecklistEntity.setIsDeleted(true);
|
callTargetAudienceChecklistEntity.setIsDeleted(true);
|
||||||
callTargetAudienceChecklistRepository.save(callTargetAudienceChecklistEntity);
|
callTargetAudienceChecklistRepository.save(callTargetAudienceChecklistEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft delete for aimedTo or Checklist" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldCallTargetAudienceChecklistEntity).newData(callTargetAudienceChecklistEntity).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
public CallDetailsResponseBean convertToCallDetailsResponseBean(CallEntity callEntity) {
|
public CallDetailsResponseBean convertToCallDetailsResponseBean(CallEntity callEntity) {
|
||||||
@@ -727,13 +792,18 @@ public class CallDao {
|
|||||||
|
|
||||||
|
|
||||||
public CallResponse validateCallData(CallEntity callEntity) {
|
public CallResponse validateCallData(CallEntity callEntity) {
|
||||||
|
CallEntity oldCallEntity = Utils.getClonedEntityForData(callEntity);
|
||||||
validateUpdate(callEntity);
|
validateUpdate(callEntity);
|
||||||
CallResponse callResponseBean = getCallResponseBean(callEntity);
|
CallResponse callResponseBean = getCallResponseBean(callEntity);
|
||||||
FlowResponseBean flowResponseBean = flowDao.getFlowByCallId(callEntity.getId());
|
FlowResponseBean flowResponseBean = flowDao.getFlowByCallId(callEntity.getId());
|
||||||
List<FormResponseBean> formResponseBean = formDao.getFormsByCallId(callEntity);
|
List<FormResponseBean> formResponseBean = formDao.getFormsByCallId(callEntity);
|
||||||
CallValidatorServiceImpl.validateResponse(callResponseBean,flowResponseBean,formResponseBean);
|
CallValidatorServiceImpl.validateResponse(callResponseBean,flowResponseBean,formResponseBean);
|
||||||
callEntity.setStatus(CallStatusEnum.READY_TO_PUBLISH.getValue());
|
callEntity.setStatus(CallStatusEnum.READY_TO_PUBLISH.getValue());
|
||||||
callRepository.save(callEntity);
|
callEntity = callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "validate call" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallEntity).newData(callEntity).build());
|
||||||
|
|
||||||
callResponseBean.setCurrentStep(GepafinConstant.VALIDATE_REQUEST);
|
callResponseBean.setCurrentStep(GepafinConstant.VALIDATE_REQUEST);
|
||||||
callResponseBean.setStatus(CallStatusEnum.valueOf(callEntity.getStatus()));
|
callResponseBean.setStatus(CallStatusEnum.valueOf(callEntity.getStatus()));
|
||||||
return callResponseBean;
|
return callResponseBean;
|
||||||
@@ -747,10 +817,15 @@ public class CallDao {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
public CallResponse updateCallStatus(CallEntity callEntity, CallStatusEnum statusReq) {
|
public CallResponse updateCallStatus(CallEntity callEntity, CallStatusEnum statusReq) {
|
||||||
|
CallEntity oldCallEntity = Utils.getClonedEntityForData(callEntity);
|
||||||
CallStatusEnum currentStatus = CallStatusEnum.valueOf(callEntity.getStatus());
|
CallStatusEnum currentStatus = CallStatusEnum.valueOf(callEntity.getStatus());
|
||||||
validateStatusChange(currentStatus, statusReq);
|
validateStatusChange(currentStatus, statusReq);
|
||||||
callEntity.setStatus(statusReq.getValue());
|
callEntity.setStatus(statusReq.getValue());
|
||||||
callEntity = callRepository.save(callEntity);
|
callEntity = callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "update call status" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallEntity).newData(callEntity).build());
|
||||||
|
|
||||||
return convertToCallResponseBean(callEntity);
|
return convertToCallResponseBean(callEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,14 +5,19 @@ import net.gepafin.tendermanagement.config.Translator;
|
|||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
|
||||||
import net.gepafin.tendermanagement.entities.CommunicationEntity;
|
import net.gepafin.tendermanagement.entities.CommunicationEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.CommunicationRequestBean;
|
import net.gepafin.tendermanagement.model.request.CommunicationRequestBean;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.ApplicationAmendmentResponse;
|
import net.gepafin.tendermanagement.model.response.ApplicationAmendmentResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.CommunicationResponseBean;
|
import net.gepafin.tendermanagement.model.response.CommunicationResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.CommunicationRepository;
|
import net.gepafin.tendermanagement.repositories.CommunicationRepository;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService;
|
import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
|
import org.checkerframework.checker.units.qual.A;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -34,24 +39,41 @@ public class CommunicationDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public CommunicationResponseBean addCommentToAmendmentRequest(HttpServletRequest request, CommunicationRequestBean communicationReq, Long amendmentId) {
|
public CommunicationResponseBean addCommentToAmendmentRequest(HttpServletRequest request, CommunicationRequestBean communicationReq, Long amendmentId) {
|
||||||
|
|
||||||
log.info("Adding communication request...");
|
log.info("Adding communication request...");
|
||||||
CommunicationEntity communicationEntity = convertToCommunicationCommentEntity(communicationReq, amendmentId);
|
CommunicationEntity communicationEntity = convertToCommunicationCommentEntity(communicationReq, amendmentId);
|
||||||
communicationEntity = communicationRepository.save(communicationEntity);
|
communicationEntity = communicationRepository.save(communicationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "adding comment to amendment request" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(communicationEntity).build());
|
||||||
|
|
||||||
log.info("Added comment: {}", communicationEntity);
|
log.info("Added comment: {}", communicationEntity);
|
||||||
return convertToCommunicationResponseBean(communicationEntity);
|
return convertToCommunicationResponseBean(communicationEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String deleteComment(Long amendmentId, Long commentId) {
|
public String deleteComment(Long amendmentId, Long commentId) {
|
||||||
|
|
||||||
CommunicationEntity data = communicationRepository.findById(commentId)
|
CommunicationEntity data = communicationRepository.findByIdAndIsDeletedFalse(commentId)
|
||||||
.orElseThrow(() -> new CustomValidationException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.COMMENT_NOT_FOUND)));
|
.orElseThrow(() -> new CustomValidationException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.COMMENT_NOT_FOUND)));
|
||||||
|
//cloned for old commentData
|
||||||
|
CommunicationEntity oldComment = Utils.getClonedEntityForData(data);
|
||||||
|
|
||||||
if (!data.getApplicationAmendmentRequest().getId().equals(amendmentId)) {
|
if (!data.getApplicationAmendmentRequest().getId().equals(amendmentId)) {
|
||||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.INVALID_AMENDMENT_FOR_COMMENT));
|
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.INVALID_AMENDMENT_FOR_COMMENT));
|
||||||
}
|
}
|
||||||
data.setIsDeleted(true);
|
data.setIsDeleted(true);
|
||||||
communicationRepository.save(data);
|
data = communicationRepository.save(data);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft deleting comment to amendment request" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldComment).newData(data).build());
|
||||||
|
|
||||||
return "Deleted Comment Successfully.";
|
return "Deleted Comment Successfully.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,6 +92,9 @@ public class CommunicationDao {
|
|||||||
log.info("Updating communication comment...");
|
log.info("Updating communication comment...");
|
||||||
CommunicationEntity existingComment = communicationRepository.findById(commentId)
|
CommunicationEntity existingComment = communicationRepository.findById(commentId)
|
||||||
.orElseThrow(() -> new CustomValidationException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.COMMENT_NOT_FOUND)));
|
.orElseThrow(() -> new CustomValidationException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.COMMENT_NOT_FOUND)));
|
||||||
|
//cloned for old data for communication
|
||||||
|
CommunicationEntity oldCommentData = Utils.getClonedEntityForData(existingComment);
|
||||||
|
|
||||||
if (!existingComment.getApplicationAmendmentRequest().getId().equals(amendmentId)) {
|
if (!existingComment.getApplicationAmendmentRequest().getId().equals(amendmentId)) {
|
||||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.COMMENT_NOT_ASSOCIATE_WITH_AMENDMENT_ID_ERROR_MSG));
|
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.COMMENT_NOT_ASSOCIATE_WITH_AMENDMENT_ID_ERROR_MSG));
|
||||||
}
|
}
|
||||||
@@ -78,6 +103,10 @@ public class CommunicationDao {
|
|||||||
existingComment.setCommentedDate(LocalDateTime.now());
|
existingComment.setCommentedDate(LocalDateTime.now());
|
||||||
existingComment = communicationRepository.save(existingComment);
|
existingComment = communicationRepository.save(existingComment);
|
||||||
log.info("Updated Comment: {}", existingComment);
|
log.info("Updated Comment: {}", existingComment);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "updating comment to amendment request" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCommentData).newData(existingComment).build());
|
||||||
|
|
||||||
return convertToCommunicationResponseBean(existingComment);
|
return convertToCommunicationResponseBean(existingComment);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,6 +121,7 @@ public class CommunicationDao {
|
|||||||
response.setTitle(entity.getCommunicationTitle());
|
response.setTitle(entity.getCommunicationTitle());
|
||||||
response.setSenderUserId(entity.getSenderUserId());
|
response.setSenderUserId(entity.getSenderUserId());
|
||||||
response.setReceiverUserId(entity.getReceiverUserId());
|
response.setReceiverUserId(entity.getReceiverUserId());
|
||||||
|
response.setId(entity.getId());
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,14 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.*;
|
import net.gepafin.tendermanagement.web.rest.api.errors.*;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -38,25 +42,38 @@ public class CompanyDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FaqRepository faqRepository;
|
private FaqRepository faqRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public CompanyResponse createCompany(UserEntity userEntity, CompanyRequest companyRequest) {
|
public CompanyResponse createCompany(UserEntity userEntity, CompanyRequest companyRequest) {
|
||||||
|
|
||||||
CompanyEntity existingCompany = companyRepository.findByVatNumberAndHubId(companyRequest.getVatNumber(), userEntity.getHub().getId());
|
CompanyEntity existingCompany = companyRepository.findByVatNumberAndHubId(companyRequest.getVatNumber(), userEntity.getHub().getId());
|
||||||
UserWithCompanyEntity userWithCompanyEntity = null;
|
UserWithCompanyEntity userWithCompanyEntity = null;
|
||||||
if (existingCompany != null) {
|
if (existingCompany != null) {
|
||||||
UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userEntity.getId(), existingCompany.getId())
|
UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userEntity.getId(), existingCompany.getId()).orElse(null);
|
||||||
.orElse(null);
|
|
||||||
if (existingRelation == null) {
|
if (existingRelation == null) {
|
||||||
userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant());
|
userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant());
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "adding user with company" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(userWithCompanyEntity).build());
|
||||||
} else {
|
} else {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.USER_ALREADY_CONNECTED_TO_COMPANY));
|
||||||
Translator.toLocale(GepafinConstant.USER_ALREADY_CONNECTED_TO_COMPANY));
|
|
||||||
}
|
}
|
||||||
return convertCompanyEntityToCompanyResponse(existingCompany, userWithCompanyEntity);
|
return convertCompanyEntityToCompanyResponse(existingCompany, userWithCompanyEntity);
|
||||||
} else {
|
} else {
|
||||||
validateCompany(userEntity, companyRequest);
|
validateCompany(userEntity, companyRequest);
|
||||||
CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(userEntity, companyRequest);
|
CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(userEntity, companyRequest);
|
||||||
companyRepository.save(companyEntity);
|
CompanyEntity companyData = companyRepository.save(companyEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "creating company" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(companyData).build());
|
||||||
|
|
||||||
userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant());
|
userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant());
|
||||||
|
|
||||||
return convertCompanyEntityToCompanyResponse(companyEntity, userWithCompanyEntity);
|
return convertCompanyEntityToCompanyResponse(companyEntity, userWithCompanyEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,6 +97,7 @@ public class CompanyDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant) {
|
private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant) {
|
||||||
|
|
||||||
UserWithCompanyEntity userWithCompanyEntity = new UserWithCompanyEntity();
|
UserWithCompanyEntity userWithCompanyEntity = new UserWithCompanyEntity();
|
||||||
if (userEntity.getBeneficiary() != null) {
|
if (userEntity.getBeneficiary() != null) {
|
||||||
userWithCompanyEntity.setBeneficiaryId(userEntity.getBeneficiary().getId());
|
userWithCompanyEntity.setBeneficiaryId(userEntity.getBeneficiary().getId());
|
||||||
@@ -88,7 +106,11 @@ public class CompanyDao {
|
|||||||
userWithCompanyEntity.setCompanyId(companyEntity.getId());
|
userWithCompanyEntity.setCompanyId(companyEntity.getId());
|
||||||
userWithCompanyEntity.setUserId(userEntity.getId());
|
userWithCompanyEntity.setUserId(userEntity.getId());
|
||||||
userWithCompanyEntity.setIsLegalRepresentant(isLegalRepresentant);
|
userWithCompanyEntity.setIsLegalRepresentant(isLegalRepresentant);
|
||||||
return userWithCompanyRepository.save(userWithCompanyEntity);
|
UserWithCompanyEntity userWithCompany = userWithCompanyRepository.save(userWithCompanyEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "adding user with company" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(userWithCompany).build());
|
||||||
|
return userWithCompany;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CompanyEntity convertCompanyRequestToCompanyEntity(UserEntity userEntity, CompanyRequest request) {
|
private CompanyEntity convertCompanyRequestToCompanyEntity(UserEntity userEntity, CompanyRequest request) {
|
||||||
@@ -139,32 +161,43 @@ public class CompanyDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public CompanyResponse updateCompany(UserEntity userEntity, Long companyId, CompanyRequest companyRequest) {
|
public CompanyResponse updateCompany(UserEntity userEntity, Long companyId, CompanyRequest companyRequest) {
|
||||||
|
|
||||||
CompanyEntity companyEntity = validateCompany(companyId);
|
CompanyEntity companyEntity = validateCompany(companyId);
|
||||||
setIfUpdated(companyEntity::getCompanyName, companyEntity::setCompanyName,
|
//cloned entity for old data
|
||||||
companyRequest.getCompanyName());
|
CompanyEntity oldCompanyData = Utils.getClonedEntityForData(companyEntity);
|
||||||
|
|
||||||
|
setIfUpdated(companyEntity::getCompanyName, companyEntity::setCompanyName, companyRequest.getCompanyName());
|
||||||
setIfUpdated(companyEntity::getVatNumber, companyEntity::setVatNumber, companyRequest.getVatNumber());
|
setIfUpdated(companyEntity::getVatNumber, companyEntity::setVatNumber, companyRequest.getVatNumber());
|
||||||
setIfUpdated(companyEntity::getCodiceFiscale, companyEntity::setCodiceFiscale,
|
setIfUpdated(companyEntity::getCodiceFiscale, companyEntity::setCodiceFiscale, companyRequest.getCodiceFiscale());
|
||||||
companyRequest.getCodiceFiscale());
|
|
||||||
setIfUpdated(companyEntity::getAddress, companyEntity::setAddress, companyRequest.getAddress());
|
setIfUpdated(companyEntity::getAddress, companyEntity::setAddress, companyRequest.getAddress());
|
||||||
setIfUpdated(companyEntity::getPhoneNumber, companyEntity::setPhoneNumber,
|
setIfUpdated(companyEntity::getPhoneNumber, companyEntity::setPhoneNumber, companyRequest.getPhoneNumber());
|
||||||
companyRequest.getPhoneNumber());
|
|
||||||
setIfUpdated(companyEntity::getCity, companyEntity::setCity, companyRequest.getCity());
|
setIfUpdated(companyEntity::getCity, companyEntity::setCity, companyRequest.getCity());
|
||||||
setIfUpdated(companyEntity::getProvince, companyEntity::setProvince, companyRequest.getProvince());
|
setIfUpdated(companyEntity::getProvince, companyEntity::setProvince, companyRequest.getProvince());
|
||||||
setIfUpdated(companyEntity::getCap, companyEntity::setCap, companyRequest.getCap());
|
setIfUpdated(companyEntity::getCap, companyEntity::setCap, companyRequest.getCap());
|
||||||
setIfUpdated(companyEntity::getCountry, companyEntity::setCountry, companyRequest.getCountry());
|
setIfUpdated(companyEntity::getCountry, companyEntity::setCountry, companyRequest.getCountry());
|
||||||
setIfUpdated(companyEntity::getPec, companyEntity::setPec, companyRequest.getPec());
|
setIfUpdated(companyEntity::getPec, companyEntity::setPec, companyRequest.getPec());
|
||||||
setIfUpdated(companyEntity::getEmail, companyEntity::setEmail, companyRequest.getEmail());
|
setIfUpdated(companyEntity::getEmail, companyEntity::setEmail, companyRequest.getEmail());
|
||||||
setIfUpdated(companyEntity::getNumberOfEmployees, companyEntity::setNumberOfEmployees,
|
setIfUpdated(companyEntity::getNumberOfEmployees, companyEntity::setNumberOfEmployees, companyRequest.getNumberOfEmployees());
|
||||||
companyRequest.getNumberOfEmployees());
|
setIfUpdated(companyEntity::getAnnualRevenue, companyEntity::setAnnualRevenue, companyRequest.getAnnualRevenue());
|
||||||
setIfUpdated(companyEntity::getAnnualRevenue, companyEntity::setAnnualRevenue,
|
|
||||||
companyRequest.getAnnualRevenue());
|
|
||||||
setIfUpdated(companyEntity::getContactName, companyEntity::setContactName, companyRequest.getContactName());
|
setIfUpdated(companyEntity::getContactName, companyEntity::setContactName, companyRequest.getContactName());
|
||||||
setIfUpdated(companyEntity::getContactEmail, companyEntity::setContactEmail, companyRequest.getContactEmail());
|
setIfUpdated(companyEntity::getContactEmail, companyEntity::setContactEmail, companyRequest.getContactEmail());
|
||||||
companyRepository.save(companyEntity);
|
companyRepository.save(companyEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update company" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCompanyData).newData(companyEntity).build());
|
||||||
|
|
||||||
UserWithCompanyEntity userWithCompanyEntity = getUserWithCompany(userEntity.getId(), companyId);
|
UserWithCompanyEntity userWithCompanyEntity = getUserWithCompany(userEntity.getId(), companyId);
|
||||||
Utils.setIfUpdated(userWithCompanyEntity::getIsLegalRepresentant, userWithCompanyEntity::setIsLegalRepresentant,
|
//cloned entity for old data
|
||||||
companyRequest.getIsLegalRepresentant());
|
UserWithCompanyEntity oldUserWithCompanyData = Utils.getClonedEntityForData(userWithCompanyEntity);
|
||||||
userWithCompanyRepository.save(userWithCompanyEntity);
|
|
||||||
|
Utils.setIfUpdated(userWithCompanyEntity::getIsLegalRepresentant, userWithCompanyEntity::setIsLegalRepresentant, companyRequest.getIsLegalRepresentant());
|
||||||
|
userWithCompanyEntity = userWithCompanyRepository.save(userWithCompanyEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update company" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldUserWithCompanyData).newData(userWithCompanyEntity).build());
|
||||||
|
|
||||||
return convertCompanyEntityToCompanyResponse(companyEntity, userWithCompanyEntity);
|
return convertCompanyEntityToCompanyResponse(companyEntity, userWithCompanyEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,8 +212,20 @@ public class CompanyDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteCompany(UserEntity userEntity, Long companyId) {
|
public void deleteCompany(UserEntity userEntity, Long companyId) {
|
||||||
|
|
||||||
CompanyEntity companyEntity = validateCompany(companyId);
|
CompanyEntity companyEntity = validateCompany(companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "delete company" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(companyEntity).newData(null).build());
|
||||||
|
|
||||||
companyRepository.delete(companyEntity);
|
companyRepository.delete(companyEntity);
|
||||||
|
|
||||||
|
UserWithCompanyEntity userWithCompanyEntity = getUserWithCompany(userEntity.getId(), companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "delete user with company" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(userWithCompanyEntity).newData(null).build());
|
||||||
|
|
||||||
userWithCompanyRepository.deleteByCompanyIdAndIsDeletedFalse(companyId);
|
userWithCompanyRepository.deleteByCompanyIdAndIsDeletedFalse(companyId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,6 +249,7 @@ public class CompanyDao {
|
|||||||
() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_COMPANY_RELATION_NOT_FOUND)));
|
() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_COMPANY_RELATION_NOT_FOUND)));
|
||||||
}
|
}
|
||||||
public void removeCompanyFromList(UserEntity userEntity, Long companyId) {
|
public void removeCompanyFromList(UserEntity userEntity, Long companyId) {
|
||||||
|
|
||||||
CompanyEntity companyEntity = validateCompany(companyId);
|
CompanyEntity companyEntity = validateCompany(companyId);
|
||||||
UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userEntity.getId(), companyEntity.getId())
|
UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userEntity.getId(), companyEntity.getId())
|
||||||
.orElseThrow(() -> new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.USER_ALREADY_CONNECTED_TO_COMPANY)));
|
.orElseThrow(() -> new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.USER_ALREADY_CONNECTED_TO_COMPANY)));
|
||||||
@@ -214,16 +260,33 @@ public class CompanyDao {
|
|||||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.CANNOT_DELETE_COMPANY_WITH_APPLICATION_SUBMITT));
|
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.CANNOT_DELETE_COMPANY_WITH_APPLICATION_SUBMITT));
|
||||||
}
|
}
|
||||||
if (Boolean.TRUE.equals(application.getStatus().equals(ApplicationStatusTypeEnum.DRAFT.getValue()))) {
|
if (Boolean.TRUE.equals(application.getStatus().equals(ApplicationStatusTypeEnum.DRAFT.getValue()))) {
|
||||||
|
|
||||||
|
//cloned entity for old data
|
||||||
|
ApplicationEntity oldApplicationData = Utils.getClonedEntityForData(application);
|
||||||
application.setIsDeleted(Boolean.TRUE);
|
application.setIsDeleted(Boolean.TRUE);
|
||||||
applicationRepository.save(application);
|
applicationRepository.save(application);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldApplicationData).newData(application).build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (FaqEntity faq : faqs) {
|
for (FaqEntity faq : faqs) {
|
||||||
|
//cloned for old data
|
||||||
|
FaqEntity oldFaqEntityData = Utils.getClonedEntityForData(faq);
|
||||||
faq.setIsDeleted(Boolean.TRUE);
|
faq.setIsDeleted(Boolean.TRUE);
|
||||||
faqRepository.save(faq);
|
faqRepository.save(faq);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft deleting faq" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldFaqEntityData).newData(faq).build());
|
||||||
}
|
}
|
||||||
|
UserWithCompanyEntity oldUserWithCompanyData = Utils.getClonedEntityForData(existingRelation);
|
||||||
existingRelation.setIsDeleted(Boolean.TRUE);
|
existingRelation.setIsDeleted(Boolean.TRUE);
|
||||||
userWithCompanyRepository.save(existingRelation);
|
userWithCompanyRepository.save(existingRelation);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft deleting existing user relation" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldUserWithCompanyData).newData(existingRelation).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ import java.util.function.Function;
|
|||||||
|
|
||||||
import net.gepafin.tendermanagement.enums.DocOtherSourceTypeEnum;
|
import net.gepafin.tendermanagement.enums.DocOtherSourceTypeEnum;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -67,6 +70,12 @@ public class DelegationDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public ByteArrayOutputStream generateDocument(Map<String, String> placeholders, String templateName) {
|
public ByteArrayOutputStream generateDocument(Map<String, String> placeholders, String templateName) {
|
||||||
try {
|
try {
|
||||||
String s3Folder = s3ConfigBean.generateDocumentPathForOther(DocOtherSourceTypeEnum.TEMPLATE, 0L, 0L);
|
String s3Folder = s3ConfigBean.generateDocumentPathForOther(DocOtherSourceTypeEnum.TEMPLATE, 0L, 0L);
|
||||||
@@ -177,17 +186,21 @@ public class DelegationDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public CompanyDelegationResponse uploadCompanyDelegation(UserEntity userEntity, Long companyId, MultipartFile file) {
|
public CompanyDelegationResponse uploadCompanyDelegation(UserEntity userEntity, Long companyId, MultipartFile file) {
|
||||||
|
|
||||||
companyDao.validateCompany(companyId);
|
companyDao.validateCompany(companyId);
|
||||||
companyDao.getUserWithCompany(userEntity.getId(), companyId);
|
companyDao.getUserWithCompany(userEntity.getId(), companyId);
|
||||||
validateFileType(file);
|
validateFileType(file);
|
||||||
UserCompanyDelegationEntity userCompanyDelegationEntity = userCompanyDelegationRepository
|
UserCompanyDelegationEntity userCompanyDelegationEntity = userCompanyDelegationRepository.findByUserIdAndCompanyIdAndStatus(userEntity.getId(), companyId,
|
||||||
.findByUserIdAndCompanyIdAndStatus(userEntity.getId(), companyId,
|
|
||||||
UserCompanyDelegationStatusEnum.ACTIVE.getValue());
|
UserCompanyDelegationStatusEnum.ACTIVE.getValue());
|
||||||
|
UserCompanyDelegationEntity oldUserCompanyDelegationEntity = Utils.getClonedEntityForData(userCompanyDelegationEntity);
|
||||||
if (userCompanyDelegationEntity != null) {
|
if (userCompanyDelegationEntity != null) {
|
||||||
userCompanyDelegationEntity.setStatus(UserCompanyDelegationStatusEnum.INACTIVE.getValue());
|
userCompanyDelegationEntity.setStatus(UserCompanyDelegationStatusEnum.INACTIVE.getValue());
|
||||||
userCompanyDelegationRepository.save(userCompanyDelegationEntity);
|
userCompanyDelegationRepository.save(userCompanyDelegationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "update user company delegation status" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldUserCompanyDelegationEntity)
|
||||||
|
.newData(userCompanyDelegationEntity).build());
|
||||||
}
|
}
|
||||||
UploadFileOnAmazonS3Response uploadFileOnAmazonS3Response = uploadFileOnAmazonS3ForCompanyDelegation(file);
|
UploadFileOnAmazonS3Response uploadFileOnAmazonS3Response = uploadFileOnAmazonS3ForCompanyDelegation(file);
|
||||||
userCompanyDelegationEntity = new UserCompanyDelegationEntity();
|
userCompanyDelegationEntity = new UserCompanyDelegationEntity();
|
||||||
@@ -200,8 +213,14 @@ public class DelegationDao {
|
|||||||
userCompanyDelegationEntity.setFileName(uploadFileOnAmazonS3Response.getFileName());
|
userCompanyDelegationEntity.setFileName(uploadFileOnAmazonS3Response.getFileName());
|
||||||
userCompanyDelegationEntity.setFilePath(uploadFileOnAmazonS3Response.getFilePath());
|
userCompanyDelegationEntity.setFilePath(uploadFileOnAmazonS3Response.getFilePath());
|
||||||
userCompanyDelegationRepository.save(userCompanyDelegationEntity);
|
userCompanyDelegationRepository.save(userCompanyDelegationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Insert or upload user company delegation" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null)
|
||||||
|
.newData(userCompanyDelegationEntity).build());
|
||||||
|
|
||||||
return convertUserCompanyDelegationToCompanyDelegationResponse(userCompanyDelegationEntity);
|
return convertUserCompanyDelegationToCompanyDelegationResponse(userCompanyDelegationEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private UploadFileOnAmazonS3Response uploadFileOnAmazonS3ForCompanyDelegation(MultipartFile file) {
|
private UploadFileOnAmazonS3Response uploadFileOnAmazonS3ForCompanyDelegation(MultipartFile file) {
|
||||||
try {
|
try {
|
||||||
String s3Path = generateS3PathForDelegation();
|
String s3Path = generateS3PathForDelegation();
|
||||||
@@ -247,15 +266,22 @@ public class DelegationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteCompanyDelegation(UserEntity userEntity, Long companyId) {
|
public void deleteCompanyDelegation(UserEntity userEntity, Long companyId) {
|
||||||
UserCompanyDelegationEntity userCompanyDelegationEntity = userCompanyDelegationRepository
|
|
||||||
.findByUserIdAndCompanyIdAndStatus(userEntity.getId(), companyId,
|
UserCompanyDelegationEntity userCompanyDelegationEntity = userCompanyDelegationRepository.findByUserIdAndCompanyIdAndStatus(userEntity.getId(), companyId,
|
||||||
UserCompanyDelegationStatusEnum.ACTIVE.getValue());
|
UserCompanyDelegationStatusEnum.ACTIVE.getValue());
|
||||||
companyDao.getUserWithCompany(userEntity.getId(), companyId);
|
companyDao.getUserWithCompany(userEntity.getId(), companyId);
|
||||||
|
//cloned entity for old data
|
||||||
|
UserCompanyDelegationEntity oldUserCompanyDelegation = Utils.getClonedEntityForData(userCompanyDelegationEntity);
|
||||||
|
|
||||||
if (userCompanyDelegationEntity == null) {
|
if (userCompanyDelegationEntity == null) {
|
||||||
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.DELEGATION_NOT_FOUND));
|
||||||
Translator.toLocale(GepafinConstant.DELEGATION_NOT_FOUND));
|
|
||||||
}
|
}
|
||||||
userCompanyDelegationEntity.setStatus(UserCompanyDelegationStatusEnum.INACTIVE.getValue());
|
userCompanyDelegationEntity.setStatus(UserCompanyDelegationStatusEnum.INACTIVE.getValue());
|
||||||
userCompanyDelegationRepository.save(userCompanyDelegationEntity);
|
userCompanyDelegationRepository.save(userCompanyDelegationEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Soft Deleting company delegation " operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldUserCompanyDelegation).newData(userCompanyDelegationEntity)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,15 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
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.repositories.ApplicationRepository;
|
||||||
|
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.CustomValidationException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -48,10 +54,17 @@ public class DocumentDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationRepository applicationFormRepository;
|
private ApplicationRepository applicationFormRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
// @Value("${aws.s3.url.folder}")
|
// @Value("${aws.s3.url.folder}")
|
||||||
// private String s3Folder;
|
// private String s3Folder;
|
||||||
|
|
||||||
public List<DocumentResponseBean> uploadFiles(List<MultipartFile> files, Long sourceId, DocumentSourceTypeEnum sourceType, DocumentTypeEnum fileType) {
|
public List<DocumentResponseBean> uploadFiles(List<MultipartFile> files, Long sourceId, DocumentSourceTypeEnum sourceType, DocumentTypeEnum fileType) {
|
||||||
|
|
||||||
List<DocumentEntity> documentEntities = new ArrayList<>();
|
List<DocumentEntity> documentEntities = new ArrayList<>();
|
||||||
Long source = resolveSourceId(sourceId, sourceType);
|
Long source = resolveSourceId(sourceId, sourceType);
|
||||||
for (MultipartFile file : files) {
|
for (MultipartFile file : files) {
|
||||||
@@ -68,8 +81,44 @@ public class DocumentDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
documentRepository.saveAll(documentEntities);
|
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());
|
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) {
|
private UploadFileOnAmazonS3Response uploadFileOnAmazonS3(MultipartFile file, DocumentSourceTypeEnum type, Long sourceId) {
|
||||||
|
|
||||||
Long applicationId = 0L;
|
Long applicationId = 0L;
|
||||||
@@ -95,6 +144,7 @@ public class DocumentDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
private Long resolveSourceId(Long sourceId, DocumentSourceTypeEnum sourceType) {
|
private Long resolveSourceId(Long sourceId, DocumentSourceTypeEnum sourceType) {
|
||||||
|
|
||||||
if (sourceType == DocumentSourceTypeEnum.CALL) {
|
if (sourceType == DocumentSourceTypeEnum.CALL) {
|
||||||
CallEntity callEntity = callService.validateCall(sourceId);
|
CallEntity callEntity = callService.validateCall(sourceId);
|
||||||
// callDao.validateUpdate(callEntity);
|
// callDao.validateUpdate(callEntity);
|
||||||
@@ -109,12 +159,23 @@ public class DocumentDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteFile(Long documentId) {
|
public void deleteFile(Long documentId) {
|
||||||
DocumentEntity documentEntity = documentRepository.findById(documentId).orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
|
||||||
Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND)));
|
DocumentEntity documentEntity = documentRepository.findById(documentId)
|
||||||
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND)));
|
||||||
|
// String fileName= Utils.extractFileName(documentEntity.getFilePath());
|
||||||
|
// deleteFileOnAmazonS3(fileName);
|
||||||
|
|
||||||
|
//cloned for old data
|
||||||
|
DocumentEntity oldDocumentEntity = Utils.getClonedEntityForData(documentEntity);
|
||||||
|
|
||||||
// String fileName= Utils.extractFileName(documentEntity.getFilePath());
|
// String fileName= Utils.extractFileName(documentEntity.getFilePath());
|
||||||
// deleteFileOnAmazonS3(fileName);
|
// deleteFileOnAmazonS3(fileName);
|
||||||
documentEntity.setIsDeleted(true);
|
documentEntity.setIsDeleted(true);
|
||||||
documentRepository.save(documentEntity);
|
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -124,7 +185,11 @@ public class DocumentDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public DocumentResponseBean updateDocument(Long documentId, MultipartFile file, DocumentTypeEnum documentTypeEnum) {
|
public DocumentResponseBean updateDocument(Long documentId, MultipartFile file, DocumentTypeEnum documentTypeEnum) {
|
||||||
|
|
||||||
DocumentEntity documentEntity = validateDocument(documentId);
|
DocumentEntity documentEntity = validateDocument(documentId);
|
||||||
|
//cloned entity for old data
|
||||||
|
DocumentEntity oldDocumentData = Utils.getClonedEntityForData(documentEntity);
|
||||||
|
|
||||||
String type = documentEntity.getSource();
|
String type = documentEntity.getSource();
|
||||||
UploadFileOnAmazonS3Response uploadFileOnAmazonS3Response = updateFileOnAmazonS3(file, DocumentSourceTypeEnum.valueOf(type), documentEntity.getSourceId());
|
UploadFileOnAmazonS3Response uploadFileOnAmazonS3Response = updateFileOnAmazonS3(file, DocumentSourceTypeEnum.valueOf(type), documentEntity.getSourceId());
|
||||||
if (uploadFileOnAmazonS3Response != null) {
|
if (uploadFileOnAmazonS3Response != null) {
|
||||||
@@ -134,6 +199,10 @@ public class DocumentDao {
|
|||||||
documentEntity.setSource(documentEntity.getSource());
|
documentEntity.setSource(documentEntity.getSource());
|
||||||
documentEntity.setSourceId(documentEntity.getSourceId());
|
documentEntity.setSourceId(documentEntity.getSourceId());
|
||||||
documentRepository.save(documentEntity);
|
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);
|
return callDao.convertToDocumentResponseBean(documentEntity);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
||||||
import net.gepafin.tendermanagement.enums.EmailScenarioTypeEnum;
|
import net.gepafin.tendermanagement.enums.EmailScenarioTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.EmailEntityTypeEnum;
|
import net.gepafin.tendermanagement.enums.EmailEntityTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.RecipientTypeEnum;
|
import net.gepafin.tendermanagement.enums.RecipientTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.repositories.EmailLogRepository;
|
import net.gepafin.tendermanagement.repositories.EmailLogRepository;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -20,6 +24,7 @@ public class EmailLogDao {
|
|||||||
|
|
||||||
|
|
||||||
public EmailLogEntity createEmailLog(EmailLogRequest emailLogRequest) {
|
public EmailLogEntity createEmailLog(EmailLogRequest emailLogRequest) {
|
||||||
|
|
||||||
EmailLogEntity emailLogEntity = new EmailLogEntity();
|
EmailLogEntity emailLogEntity = new EmailLogEntity();
|
||||||
emailLogEntity.setEmailType(emailLogRequest.getEmailType().getValue());
|
emailLogEntity.setEmailType(emailLogRequest.getEmailType().getValue());
|
||||||
emailLogEntity.setRecipientType(emailLogRequest.getRecipientType().getValue());
|
emailLogEntity.setRecipientType(emailLogRequest.getRecipientType().getValue());
|
||||||
@@ -38,6 +43,7 @@ public class EmailLogDao {
|
|||||||
emailLogEntity.setAmendmentId(emailLogRequest.getAmendmentId());
|
emailLogEntity.setAmendmentId(emailLogRequest.getAmendmentId());
|
||||||
emailLogEntity.setCallId(emailLogRequest.getCallId());
|
emailLogEntity.setCallId(emailLogRequest.getCallId());
|
||||||
emailLogEntity = saveEmailLogEntity(emailLogEntity);
|
emailLogEntity = saveEmailLogEntity(emailLogEntity);
|
||||||
|
|
||||||
return emailLogEntity;
|
return emailLogEntity;
|
||||||
}
|
}
|
||||||
public EmailLogEntity saveEmailLogEntity(EmailLogEntity emailLogEntity){
|
public EmailLogEntity saveEmailLogEntity(EmailLogEntity emailLogEntity){
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ public class EmailNotificationDao {
|
|||||||
EmailConfig emailConfig = retrieveEmailConfig(hubId);
|
EmailConfig emailConfig = retrieveEmailConfig(hubId);
|
||||||
EmailService emailService = emailServiceFactory.getEmailService(emailConfig.getEmailServiceType());
|
EmailService emailService = emailServiceFactory.getEmailService(emailConfig.getEmailServiceType());
|
||||||
emailService.sendEmail(subject, body, recipientEmails, emailConfig,emailLogRequest);
|
emailService.sendEmail(subject, body, recipientEmails, emailConfig,emailLogRequest);
|
||||||
|
// emailService.sendEmail(subject, body, recipientEmails, emailConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
public EmailConfig retrieveEmailConfig(Long hubId) {
|
public EmailConfig retrieveEmailConfig(Long hubId) {
|
||||||
|
|||||||
@@ -1,17 +1,22 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
import net.gepafin.tendermanagement.entities.CriteriaFormFieldEntity;
|
import net.gepafin.tendermanagement.entities.CriteriaFormFieldEntity;
|
||||||
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.CriteriaFormFieldRepository;
|
import net.gepafin.tendermanagement.repositories.CriteriaFormFieldRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
import net.gepafin.tendermanagement.service.LookUpDataService;
|
import net.gepafin.tendermanagement.service.LookUpDataService;
|
||||||
|
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.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
|
|
||||||
@@ -35,64 +40,101 @@ public class EvaluationCriteriaDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
||||||
|
|
||||||
public EvaluationCriteriaResponseBean createEvaluationCriteria(
|
@Autowired
|
||||||
EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
private LoggingUtil loggingUtil;
|
||||||
EvaluationCriteriaEntity entity = convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(
|
|
||||||
evaluationCriteriaRequest);
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
|
public EvaluationCriteriaResponseBean createEvaluationCriteria(EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
||||||
|
|
||||||
|
EvaluationCriteriaEntity entity = convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(evaluationCriteriaRequest, VersionActionTypeEnum.INSERT, null);
|
||||||
return convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(entity);
|
return convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EvaluationCriteriaEntity convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(
|
private EvaluationCriteriaEntity convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(EvaluationCriteriaRequest evaluationCriteriaRequest,
|
||||||
EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
VersionActionTypeEnum actionType, EvaluationCriteriaEntity evaluationCriteriaEntity) {
|
||||||
EvaluationCriteriaEntity entity = new EvaluationCriteriaEntity();
|
|
||||||
|
EvaluationCriteriaEntity entity;
|
||||||
|
if (evaluationCriteriaEntity != null && evaluationCriteriaEntity.getId() != null) {
|
||||||
|
entity = evaluationCriteriaEntity;
|
||||||
|
} else {
|
||||||
|
entity = new EvaluationCriteriaEntity();
|
||||||
|
}
|
||||||
|
//cloned for old data
|
||||||
|
EvaluationCriteriaEntity oldEvaluationCriteriaData = Utils.getClonedEntityForData(entity);
|
||||||
|
|
||||||
CallEntity callEntity = callService.validateCall(evaluationCriteriaRequest.getCallId());
|
CallEntity callEntity = callService.validateCall(evaluationCriteriaRequest.getCallId());
|
||||||
LookUpDataEntity looDataEntity = lookUpDataService
|
LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(evaluationCriteriaRequest, LookUpDataEntity.LookUpDataTypeEnum.EVALUATION_CRITERIA);
|
||||||
.validateLookUpData(evaluationCriteriaRequest.getLookUpDataId());
|
|
||||||
entity.setCall(callEntity);
|
entity.setCall(callEntity);
|
||||||
entity.setLookupData(looDataEntity);
|
entity.setLookupData(lookupDataEntity);
|
||||||
entity.setScore(0L);
|
entity.setScore(0L);
|
||||||
if (evaluationCriteriaRequest.getScore() != null) {
|
if (evaluationCriteriaRequest.getScore() != null) {
|
||||||
entity.setScore(evaluationCriteriaRequest.getScore());
|
entity.setScore(evaluationCriteriaRequest.getScore());
|
||||||
}
|
}
|
||||||
entity = evaluationCriteriaRepository.save(entity);
|
entity = evaluationCriteriaRepository.save(entity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "updating or creating evaluation criteria" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldEvaluationCriteriaData).newData(entity).build());
|
||||||
|
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EvaluationCriteriaResponseBean getEvaluationCriteriaById(Long id) {
|
public EvaluationCriteriaResponseBean getEvaluationCriteriaById(Long id) {
|
||||||
return evaluationCriteriaRepository.findById(id)
|
|
||||||
.map(this::convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean)
|
return evaluationCriteriaRepository.findById(id).map(this::convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
||||||
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EvaluationCriteriaEntity validateEvaluationCriteria(Long id) {
|
public EvaluationCriteriaEntity validateEvaluationCriteria(Long id) {
|
||||||
|
|
||||||
return evaluationCriteriaRepository.findById(id)
|
return evaluationCriteriaRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
||||||
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EvaluationCriteriaResponseBean updateEvaluationCriteria(Long id, EvaluationCriteriaRequest request) {
|
public EvaluationCriteriaResponseBean updateEvaluationCriteria(Long id, EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
||||||
|
|
||||||
EvaluationCriteriaEntity entity = evaluationCriteriaRepository.findById(id)
|
EvaluationCriteriaEntity entity = evaluationCriteriaRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
||||||
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
|
||||||
entity = convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(request);
|
entity = convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(evaluationCriteriaRequest, VersionActionTypeEnum.UPDATE, entity);
|
||||||
return convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(entity);
|
return convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteEvaluationCriteria(Long id) {
|
public void deleteEvaluationCriteria(Long id) {
|
||||||
evaluationCriteriaRepository.deleteById(id);
|
// evaluationCriteriaRepository.deleteById(id); // Not needed if setting isDeleted TRUE in the next line after fetching evaluation criteria
|
||||||
EvaluationCriteriaEntity evaluationCriteriaEntity = validateEvaluationCriteria(id);
|
EvaluationCriteriaEntity evaluationCriteriaEntity = validateEvaluationCriteria(id);
|
||||||
|
|
||||||
|
// Clone the evaluation criteria entity for old data
|
||||||
|
EvaluationCriteriaEntity oldEvaluationCriteriaData = Utils.getClonedEntityForData(evaluationCriteriaEntity);
|
||||||
|
|
||||||
|
List<CriteriaFormFieldEntity> oldList = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId()).stream()
|
||||||
|
.map(Utils::getClonedEntityForData).toList();
|
||||||
|
|
||||||
evaluationCriteriaEntity.setIsDeleted(Boolean.TRUE);
|
evaluationCriteriaEntity.setIsDeleted(Boolean.TRUE);
|
||||||
evaluationCriteriaRepository.save(evaluationCriteriaEntity);
|
evaluationCriteriaEntity = evaluationCriteriaRepository.save(evaluationCriteriaEntity);
|
||||||
List<CriteriaFormFieldEntity> list = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId())
|
|
||||||
.stream()
|
/** This code is responsible for adding a version history log for the "updating evaluation criteria" operation. **/
|
||||||
.peek(data -> data.setIsDeleted(Boolean.TRUE))
|
loggingUtil.addVersionHistory(
|
||||||
.toList();;
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldEvaluationCriteriaData).newData(evaluationCriteriaEntity)
|
||||||
criteriaFormFieldRepository.saveAll(list);
|
.build());
|
||||||
|
|
||||||
|
List<CriteriaFormFieldEntity> updatedList = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId()).stream()
|
||||||
|
.peek(data -> data.setIsDeleted(Boolean.TRUE)).toList();
|
||||||
|
|
||||||
|
List<CriteriaFormFieldEntity> softDeletingSavedList = criteriaFormFieldRepository.saveAll(updatedList);
|
||||||
|
|
||||||
|
softDeletingSavedList.forEach(data -> {
|
||||||
|
CriteriaFormFieldEntity oldFieldData = oldList.stream().filter(old -> old.getId().equals(data.getId())).findFirst().orElse(null);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Soft deleting criteria form field" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldFieldData).newData(data).build());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private EvaluationCriteriaResponseBean convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(
|
private EvaluationCriteriaResponseBean convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(EvaluationCriteriaEntity entity) {
|
||||||
EvaluationCriteriaEntity entity) {
|
|
||||||
EvaluationCriteriaResponseBean response = new EvaluationCriteriaResponseBean();
|
EvaluationCriteriaResponseBean response = new EvaluationCriteriaResponseBean();
|
||||||
response.setId(entity.getId());
|
response.setId(entity.getId());
|
||||||
response.setScore(entity.getScore());
|
response.setScore(entity.getScore());
|
||||||
|
|||||||
@@ -1,20 +1,24 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
import net.gepafin.tendermanagement.entities.FaqEntity;
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
import net.gepafin.tendermanagement.enums.RoleStatusEnum;
|
import net.gepafin.tendermanagement.enums.RoleStatusEnum;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
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.FaqReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
import net.gepafin.tendermanagement.service.CompanyService;
|
import net.gepafin.tendermanagement.service.CompanyService;
|
||||||
import net.gepafin.tendermanagement.service.LookUpDataService;
|
import net.gepafin.tendermanagement.service.LookUpDataService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
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.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
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.ResourceNotFoundException;
|
||||||
@@ -45,19 +49,30 @@ public class FaqDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CompanyService companyService;
|
private CompanyService companyService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
HttpServletRequest request;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
LoggingUtil loggingUtil;
|
||||||
|
|
||||||
public FaqResponseBean createFaq(FaqReq faqRequest, UserEntity userEntity, Long callId, Long companyId) {
|
public FaqResponseBean createFaq(FaqReq faqRequest, UserEntity userEntity, Long callId, Long companyId) {
|
||||||
|
|
||||||
CallEntity callEntity = callService.validateCall(callId);
|
CallEntity callEntity = callService.validateCall(callId);
|
||||||
FaqEntity entity = createOrUpdateFaqEntity(faqRequest, callEntity, userEntity,
|
FaqEntity entity = createOrUpdateFaqEntity(faqRequest, callEntity, userEntity, LookUpDataTypeEnum.FAQ);
|
||||||
LookUpDataEntity.LookUpDataTypeEnum.FAQ);
|
FaqEntity oldFaqEntity = Utils.getClonedEntityForData(entity);
|
||||||
if (validator.checkIsBeneficiary() && companyId == null) {
|
if (validator.checkIsBeneficiary() && companyId == null) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.COMPANY_ID_MANDATORY));
|
||||||
Translator.toLocale(GepafinConstant.COMPANY_ID_MANDATORY));
|
|
||||||
}
|
}
|
||||||
if (companyId != null) {
|
if (companyId != null) {
|
||||||
companyService.validateCompany(companyId);
|
companyService.validateCompany(companyId);
|
||||||
entity.setCompanyId(companyId);
|
entity.setCompanyId(companyId);
|
||||||
}
|
}
|
||||||
faqRepository.save(entity);
|
faqRepository.save(entity);
|
||||||
|
|
||||||
|
if (entity.getCompanyId() != null) {
|
||||||
|
/** This code is responsible for adding a version history log for the "Create FAQ" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldFaqEntity).newData(entity).build());
|
||||||
|
}
|
||||||
return convertToFaqResponseBean(entity);
|
return convertToFaqResponseBean(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,14 +83,20 @@ public class FaqDao {
|
|||||||
public FaqResponseBean updateFaq(Long id, FaqReq faqRequest, UserEntity userEntity) {
|
public FaqResponseBean updateFaq(Long id, FaqReq faqRequest, UserEntity userEntity) {
|
||||||
FaqEntity entity = validateFaq(id);
|
FaqEntity entity = validateFaq(id);
|
||||||
faqRequest.setId(entity.getId());
|
faqRequest.setId(entity.getId());
|
||||||
createOrUpdateFaqEntity(faqRequest, entity.getCall(), userEntity, LookUpDataEntity.LookUpDataTypeEnum.FAQ);
|
createOrUpdateFaqEntity(faqRequest, entity.getCall(), userEntity, LookUpDataTypeEnum.FAQ);
|
||||||
return convertToFaqResponseBean(entity);
|
return convertToFaqResponseBean(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteFaq(Long id) {
|
public void deleteFaq(Long id) {
|
||||||
|
|
||||||
FaqEntity faqEntity = validateFaq(id);
|
FaqEntity faqEntity = validateFaq(id);
|
||||||
|
FaqEntity oldFaqEntity = Utils.getClonedEntityForData(faqEntity);
|
||||||
faqEntity.setIsDeleted(Boolean.TRUE);
|
faqEntity.setIsDeleted(Boolean.TRUE);
|
||||||
faqRepository.save(faqEntity);
|
faqRepository.save(faqEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft delete faq" operation **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldFaqEntity).newData(faqEntity).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
public FaqEntity validateFaq(Long id) {
|
public FaqEntity validateFaq(Long id) {
|
||||||
@@ -89,14 +110,16 @@ public class FaqDao {
|
|||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FaqEntity createOrUpdateFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity, LookUpDataTypeEnum type) {
|
||||||
|
|
||||||
public FaqEntity createOrUpdateFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity,
|
|
||||||
LookUpDataTypeEnum type) {
|
|
||||||
FaqEntity faqEntity = null;
|
FaqEntity faqEntity = null;
|
||||||
|
FaqEntity oldFaqEntity = null;
|
||||||
|
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||||
if (isExistingFaq(faqReq)) {
|
if (isExistingFaq(faqReq)) {
|
||||||
faqEntity = faqRepository.findByIdAndCallIdAndIsDeletedFalse(faqReq.getId(), callEntity.getId())
|
faqEntity = faqRepository.findByIdAndCallIdAndIsDeletedFalse(faqReq.getId(), callEntity.getId())
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
||||||
Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
oldFaqEntity = Utils.getClonedEntityForData(faqEntity);
|
||||||
|
actionType = VersionActionTypeEnum.UPDATE;
|
||||||
} else {
|
} else {
|
||||||
if (Boolean.FALSE.equals(userEntity.getRoleEntity().getRoleType().equals(RoleStatusEnum.ROLE_BENEFICIARY.getValue()))) {
|
if (Boolean.FALSE.equals(userEntity.getRoleEntity().getRoleType().equals(RoleStatusEnum.ROLE_BENEFICIARY.getValue()))) {
|
||||||
lookUpDataService.getOrCreateLookUpDataEntity(faqReq, type);
|
lookUpDataService.getOrCreateLookUpDataEntity(faqReq, type);
|
||||||
@@ -106,16 +129,20 @@ public class FaqDao {
|
|||||||
faqEntity.setUser(userEntity);
|
faqEntity.setUser(userEntity);
|
||||||
faqEntity.setIsVisible(false);
|
faqEntity.setIsVisible(false);
|
||||||
faqEntity.setIsDeleted(false);
|
faqEntity.setIsDeleted(false);
|
||||||
|
actionType = VersionActionTypeEnum.INSERT;
|
||||||
}
|
}
|
||||||
if (faqReq.getResponse() != null && (faqEntity.getResponse() == null
|
if (faqReq.getResponse() != null && (faqEntity.getResponse() == null || Boolean.FALSE.equals(faqReq.getResponse().equals(faqEntity.getResponse())))) {
|
||||||
|| Boolean.FALSE.equals(faqReq.getResponse().equals(faqEntity.getResponse())))) {
|
|
||||||
faqEntity.setResponseDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
faqEntity.setResponseDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
}
|
}
|
||||||
setIfUpdated(faqEntity::getTitle, faqEntity::setTitle, faqReq.getTitle());
|
setIfUpdated(faqEntity::getTitle, faqEntity::setTitle, faqReq.getTitle());
|
||||||
setIfUpdated(faqEntity::getValue, faqEntity::setValue, faqReq.getValue());
|
setIfUpdated(faqEntity::getValue, faqEntity::setValue, faqReq.getValue());
|
||||||
setIfUpdated(faqEntity::getResponse, faqEntity::setResponse, faqReq.getResponse());
|
setIfUpdated(faqEntity::getResponse, faqEntity::setResponse, faqReq.getResponse());
|
||||||
setIfUpdated(faqEntity::getIsVisible, faqEntity::setIsVisible, faqReq.getIsVisible());
|
setIfUpdated(faqEntity::getIsVisible, faqEntity::setIsVisible, faqReq.getIsVisible());
|
||||||
return faqRepository.save(faqEntity);
|
faqEntity = faqRepository.save(faqEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "create or update faq" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(actionType).oldData(oldFaqEntity).newData(faqEntity).build());
|
||||||
|
return faqEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isExistingFaq(FaqReq faqReq) {
|
private boolean isExistingFaq(FaqReq faqReq) {
|
||||||
|
|||||||
@@ -6,9 +6,11 @@ import net.gepafin.tendermanagement.entities.CallEntity;
|
|||||||
import net.gepafin.tendermanagement.entities.FlowDataEntity;
|
import net.gepafin.tendermanagement.entities.FlowDataEntity;
|
||||||
import net.gepafin.tendermanagement.entities.FlowEdgesEntity;
|
import net.gepafin.tendermanagement.entities.FlowEdgesEntity;
|
||||||
import net.gepafin.tendermanagement.enums.CallStatusEnum;
|
import net.gepafin.tendermanagement.enums.CallStatusEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FlowDataRequestBean;
|
import net.gepafin.tendermanagement.model.request.FlowDataRequestBean;
|
||||||
import net.gepafin.tendermanagement.model.request.FlowEdgesRequestBean;
|
import net.gepafin.tendermanagement.model.request.FlowEdgesRequestBean;
|
||||||
import net.gepafin.tendermanagement.model.request.FlowRequestBean;
|
import net.gepafin.tendermanagement.model.request.FlowRequestBean;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.FlowDataResponseBean;
|
import net.gepafin.tendermanagement.model.response.FlowDataResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.FlowEdgesResponseBean;
|
import net.gepafin.tendermanagement.model.response.FlowEdgesResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.FlowResponseBean;
|
import net.gepafin.tendermanagement.model.response.FlowResponseBean;
|
||||||
@@ -19,11 +21,17 @@ import net.gepafin.tendermanagement.service.CallService;
|
|||||||
import net.gepafin.tendermanagement.service.FormService;
|
import net.gepafin.tendermanagement.service.FormService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
import net.gepafin.tendermanagement.util.FieldValidator;
|
import net.gepafin.tendermanagement.util.FieldValidator;
|
||||||
|
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.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import com.itextpdf.text.pdf.PdfStructTreeController.returnType;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -47,7 +55,10 @@ public class FlowDao {
|
|||||||
private FormService formService;
|
private FormService formService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CallDao callDao;
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public FlowResponseBean createOrUpdateFlow(FlowRequestBean flowRequestBean, Long callId) {
|
public FlowResponseBean createOrUpdateFlow(FlowRequestBean flowRequestBean, Long callId) {
|
||||||
validateFlowRequestBean(flowRequestBean);
|
validateFlowRequestBean(flowRequestBean);
|
||||||
@@ -76,11 +87,43 @@ public class FlowDao {
|
|||||||
List<FlowDataEntity> flowDataEntities = flowDataRepository.findByCallId(call.getId());
|
List<FlowDataEntity> flowDataEntities = flowDataRepository.findByCallId(call.getId());
|
||||||
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository.findByCallId(call.getId());
|
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository.findByCallId(call.getId());
|
||||||
if (Boolean.FALSE.equals(flowDataEntities.isEmpty()) || Boolean.FALSE.equals(flowEdgesEntities.isEmpty())) {
|
if (Boolean.FALSE.equals(flowDataEntities.isEmpty()) || Boolean.FALSE.equals(flowEdgesEntities.isEmpty())) {
|
||||||
|
if (call.getInitialForm() != null || call.getInitialForm() != null) {
|
||||||
|
CallEntity oldCallEntity = Utils.getClonedEntityForData(call);
|
||||||
call.setInitialForm(null);
|
call.setInitialForm(null);
|
||||||
call.setFinalForm(null);
|
call.setFinalForm(null);
|
||||||
call = callRepository.save(call);
|
call = callRepository.save(call);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This code is responsible for adding a version history log for the "update
|
||||||
|
* call for flow" operation.
|
||||||
|
**/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request)
|
||||||
|
.actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallEntity).newData(call).build());
|
||||||
|
|
||||||
|
}
|
||||||
flowDataRepository.deleteAll(flowDataEntities);
|
flowDataRepository.deleteAll(flowDataEntities);
|
||||||
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
||||||
|
|
||||||
|
flowDataEntities.forEach(data->{
|
||||||
|
/**
|
||||||
|
* This code is responsible for adding a version history log for the "update
|
||||||
|
* call for flow" operation.
|
||||||
|
**/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request)
|
||||||
|
.actionType(VersionActionTypeEnum.DELETE).oldData(data).newData(null).build());
|
||||||
|
});
|
||||||
|
|
||||||
|
flowEdgesEntities.forEach(data->{
|
||||||
|
/**
|
||||||
|
* This code is responsible for adding a version history log for the "update
|
||||||
|
* call for flow" operation.
|
||||||
|
**/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request)
|
||||||
|
.actionType(VersionActionTypeEnum.DELETE).oldData(data).newData(null).build());
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,10 +154,19 @@ public class FlowDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private CallEntity setInitialAndFinalFormInCall(FlowRequestBean flowRequestBean, CallEntity call) {
|
private CallEntity setInitialAndFinalFormInCall(FlowRequestBean flowRequestBean, CallEntity call) {
|
||||||
|
|
||||||
|
CallEntity oldCallEntity = Utils.getClonedEntityForData(call);
|
||||||
call.setInitialForm(flowRequestBean.getInitialForm());
|
call.setInitialForm(flowRequestBean.getInitialForm());
|
||||||
call.setFinalForm(flowRequestBean.getFinalForm());
|
call.setFinalForm(flowRequestBean.getFinalForm());
|
||||||
call.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
call.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
call = callRepository.save(call);
|
call = callRepository.save(call);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This code is responsible for adding a version history log for the "update
|
||||||
|
* call for flow" operation.
|
||||||
|
**/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request)
|
||||||
|
.actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallEntity).newData(call).build());
|
||||||
return call;
|
return call;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +175,16 @@ public class FlowDao {
|
|||||||
List<FlowDataEntity> flowDataEntities = flowRequestBean.getFlowData().stream()
|
List<FlowDataEntity> flowDataEntities = flowRequestBean.getFlowData().stream()
|
||||||
.map(flowDataRequestBean -> createFlowDataEntity(flowDataRequestBean, call))
|
.map(flowDataRequestBean -> createFlowDataEntity(flowDataRequestBean, call))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return flowDataRepository.saveAll(flowDataEntities);
|
flowDataEntities = flowDataRepository.saveAll(flowDataEntities);
|
||||||
|
flowDataEntities.forEach(data->{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This code is responsible for adding a version history log for the "delete flow data" operation.
|
||||||
|
**/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request)
|
||||||
|
.actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(data).build());
|
||||||
|
});
|
||||||
|
return flowDataEntities;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -145,7 +206,16 @@ public class FlowDao {
|
|||||||
List<FlowEdgesEntity> flowEdgesEntities = flowRequestBean.getFlowEdges().stream()
|
List<FlowEdgesEntity> flowEdgesEntities = flowRequestBean.getFlowEdges().stream()
|
||||||
.map(flowEdgesRequestBean -> createFlowEdgesEntity(flowEdgesRequestBean, call))
|
.map(flowEdgesRequestBean -> createFlowEdgesEntity(flowEdgesRequestBean, call))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return flowEdgesRepository.saveAll(flowEdgesEntities);
|
flowEdgesEntities = flowEdgesRepository.saveAll(flowEdgesEntities);
|
||||||
|
flowEdgesEntities.forEach(data->{
|
||||||
|
/**
|
||||||
|
* This code is responsible for adding a version history log for the "update
|
||||||
|
* call for flow" operation.
|
||||||
|
**/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request)
|
||||||
|
.actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(data).build());
|
||||||
|
});
|
||||||
|
return flowEdgesEntities;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FlowEdgesEntity createFlowEdgesEntity(FlowEdgesRequestBean flowEdgesRequestBean,CallEntity call) {
|
public FlowEdgesEntity createFlowEdgesEntity(FlowEdgesRequestBean flowEdgesRequestBean,CallEntity call) {
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.*;
|
import net.gepafin.tendermanagement.model.request.*;
|
||||||
import net.gepafin.tendermanagement.model.response.ContentResponseBean;
|
import net.gepafin.tendermanagement.model.response.ContentResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
||||||
@@ -10,6 +12,7 @@ import net.gepafin.tendermanagement.repositories.*;
|
|||||||
import net.gepafin.tendermanagement.service.EvaluationCriteriaService;
|
import net.gepafin.tendermanagement.service.EvaluationCriteriaService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
import net.gepafin.tendermanagement.util.FieldValidator;
|
import net.gepafin.tendermanagement.util.FieldValidator;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
@@ -62,19 +65,31 @@ public class FormDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EvaluationCriteriaService evaluationCriteriaService;
|
private EvaluationCriteriaService evaluationCriteriaService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public FormEntity saveFormEntity(FormEntity formEntity){
|
public FormEntity saveFormEntity(FormEntity formEntity){
|
||||||
formEntity=formRepository.save(formEntity);
|
formEntity=formRepository.save(formEntity);
|
||||||
return formEntity;
|
return formEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FormEntity convertFormRequestToFormEntity(CallEntity callEntity, FormRequest formRequest) {
|
public FormEntity convertFormRequestToFormEntity(CallEntity callEntity, FormRequest formRequest) {
|
||||||
|
|
||||||
FormEntity formEntity = new FormEntity();
|
FormEntity formEntity = new FormEntity();
|
||||||
formEntity.setCall(callEntity);
|
formEntity.setCall(callEntity);
|
||||||
formEntity.setLabel(formRequest.getLabel());
|
formEntity.setLabel(formRequest.getLabel());
|
||||||
formEntity.setContent(setContentResponseBean(formRequest.getContent()));
|
formEntity.setContent(setContentResponseBean(formRequest.getContent()));
|
||||||
formEntity = saveFormEntity(formEntity);
|
formEntity = saveFormEntity(formEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create form" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(formEntity).build());
|
||||||
|
|
||||||
return formEntity;
|
return formEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FormResponseBean convertFormEntityToFormResponseBean(FormEntity formEntity) {
|
public FormResponseBean convertFormEntityToFormResponseBean(FormEntity formEntity) {
|
||||||
FormResponseBean formResponseBean=new FormResponseBean();
|
FormResponseBean formResponseBean=new FormResponseBean();
|
||||||
formResponseBean.setId(formEntity.getId());
|
formResponseBean.setId(formEntity.getId());
|
||||||
@@ -98,15 +113,32 @@ public class FormDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public FormResponseBean createForm(CallEntity callEntity, FormRequest formRequest) {
|
public FormResponseBean createForm(CallEntity callEntity, FormRequest formRequest) {
|
||||||
|
|
||||||
validateForm(formRequest);
|
validateForm(formRequest);
|
||||||
|
//cloned entity for old call data.
|
||||||
|
CallEntity oldCallData = Utils.getClonedEntityForData(callEntity);
|
||||||
|
|
||||||
List<FlowDataEntity> flowDataEntities = flowDataRepository.findByCallId(callEntity.getId());
|
List<FlowDataEntity> flowDataEntities = flowDataRepository.findByCallId(callEntity.getId());
|
||||||
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository.findByCallId(callEntity.getId());
|
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository.findByCallId(callEntity.getId());
|
||||||
if (Boolean.FALSE.equals(flowDataEntities.isEmpty() || flowDataEntities == null) || Boolean.FALSE.equals(flowEdgesEntities.isEmpty() || flowEdgesEntities == null)) {
|
if (Boolean.FALSE.equals(flowDataEntities.isEmpty() || flowDataEntities == null) || Boolean.FALSE.equals(flowEdgesEntities.isEmpty() || flowEdgesEntities == null)) {
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "delete all flow data" operation. **/
|
||||||
|
flowDataEntities.stream().forEach(data -> loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(data).newData(null).build()));
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "delete all flow edges" operation. **/
|
||||||
|
flowEdgesEntities.stream().forEach(edge -> loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(edge).newData(null).build()));
|
||||||
|
|
||||||
flowDataRepository.deleteAll(flowDataEntities);
|
flowDataRepository.deleteAll(flowDataEntities);
|
||||||
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
||||||
callEntity.setInitialForm(null);
|
callEntity.setInitialForm(null);
|
||||||
callEntity.setFinalForm(null);
|
callEntity.setFinalForm(null);
|
||||||
callRepository.save(callEntity);
|
callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "update call" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallData).newData(callEntity).build());
|
||||||
}
|
}
|
||||||
FormEntity formEntity = convertFormRequestToFormEntity(callEntity, formRequest);
|
FormEntity formEntity = convertFormRequestToFormEntity(callEntity, formRequest);
|
||||||
validateAndSaveCriteriaFormField(callEntity, formEntity, formRequest.getContent());
|
validateAndSaveCriteriaFormField(callEntity, formEntity, formRequest.getContent());
|
||||||
@@ -134,9 +166,24 @@ public class FormDao {
|
|||||||
.filter(criteriaId -> !existingEvaluationCriteriaIds.contains(criteriaId))
|
.filter(criteriaId -> !existingEvaluationCriteriaIds.contains(criteriaId))
|
||||||
.forEach(criteriaId -> createCriteriaFormField(callEntity, formEntity, content.getId(), criteriaId));
|
.forEach(criteriaId -> createCriteriaFormField(callEntity, formEntity, content.getId(), criteriaId));
|
||||||
|
|
||||||
|
// Prepare entities to be marked as deleted
|
||||||
List<CriteriaFormFieldEntity> toBeDeleted = existingCriteriaFields.stream()
|
List<CriteriaFormFieldEntity> toBeDeleted = existingCriteriaFields.stream()
|
||||||
.filter(criteriaFormField -> !criteriaList.contains(criteriaFormField.getEvaluationCriteriaId()))
|
.filter(criteriaFormField -> !criteriaList.contains(criteriaFormField.getEvaluationCriteriaId()))
|
||||||
.peek(data->data.setIsDeleted(Boolean.TRUE))
|
.peek(data -> {
|
||||||
|
// Clone the entity before modification
|
||||||
|
CriteriaFormFieldEntity clonedData = Utils.getClonedEntityForData(data);
|
||||||
|
data.setIsDeleted(Boolean.TRUE);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "soft deleting criteria from field" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder()
|
||||||
|
.request(request)
|
||||||
|
.actionType(VersionActionTypeEnum.SOFT_DELETE)
|
||||||
|
.oldData(clonedData)
|
||||||
|
.newData(data)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (!toBeDeleted.isEmpty()) {
|
if (!toBeDeleted.isEmpty()) {
|
||||||
@@ -146,6 +193,7 @@ public class FormDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void createCriteriaFormField(CallEntity callEntity, FormEntity formEntity,
|
private void createCriteriaFormField(CallEntity callEntity, FormEntity formEntity,
|
||||||
String formFieldId,Long evaluationCriteriaId) {
|
String formFieldId,Long evaluationCriteriaId) {
|
||||||
EvaluationCriteriaEntity evaluationCriteria = evaluationCriteriaService.validateEvaluationCriteria(evaluationCriteriaId);
|
EvaluationCriteriaEntity evaluationCriteria = evaluationCriteriaService.validateEvaluationCriteria(evaluationCriteriaId);
|
||||||
@@ -161,6 +209,9 @@ public class FormDao {
|
|||||||
criteriaFormField.setEvaluationCriteriaId(evaluationCriteriaId);
|
criteriaFormField.setEvaluationCriteriaId(evaluationCriteriaId);
|
||||||
criteriaFormFieldRepository.save(criteriaFormField);
|
criteriaFormFieldRepository.save(criteriaFormField);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "creating criteria form field" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(criteriaFormField).build());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validateForm(FormRequest formRequest){
|
public void validateForm(FormRequest formRequest){
|
||||||
@@ -169,9 +220,13 @@ public class FormDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public FormResponseBean updateForm(UserEntity user, Long formId, FormRequest formRequest, Boolean forceDeleteFlow) {
|
public FormResponseBean updateForm(UserEntity user, Long formId, FormRequest formRequest, Boolean forceDeleteFlow) {
|
||||||
|
|
||||||
ContentRequestBean contentRequestBean2 = null;
|
ContentRequestBean contentRequestBean2 = null;
|
||||||
String choosenField = null;
|
String choosenField = null;
|
||||||
FormEntity formEntity = validateForm(formId);
|
FormEntity formEntity = validateForm(formId);
|
||||||
|
//cloned for old form data
|
||||||
|
FormEntity oldFormData = Utils.getClonedEntityForData(formEntity);
|
||||||
|
|
||||||
validator.validateUserWithCall(user, formEntity.getCall().getId());
|
validator.validateUserWithCall(user, formEntity.getCall().getId());
|
||||||
// callDao.validateUpdate(formEntity.getCall());
|
// callDao.validateUpdate(formEntity.getCall());
|
||||||
List<ContentRequestBean> contentRequestBean = Utils.convertJsonStringToList(formEntity.getContent(), ContentRequestBean.class);
|
List<ContentRequestBean> contentRequestBean = Utils.convertJsonStringToList(formEntity.getContent(), ContentRequestBean.class);
|
||||||
@@ -198,27 +253,54 @@ public class FormDao {
|
|||||||
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
||||||
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
formEntity = saveFormEntity(formEntity);
|
formEntity = saveFormEntity(formEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "update from" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldFormData).newData(formEntity)
|
||||||
|
.build());
|
||||||
|
|
||||||
List<FlowDataEntity> flowDataEntities = flowDataRepository.findByCallId(formEntity.getCall().getId());
|
List<FlowDataEntity> flowDataEntities = flowDataRepository.findByCallId(formEntity.getCall().getId());
|
||||||
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository.findByCallId(formEntity.getCall().getId());
|
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository.findByCallId(formEntity.getCall().getId());
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "delete all flow data" operation. **/
|
||||||
|
flowDataEntities.stream().forEach(data -> loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(data).newData(null).build()));
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "delete all flow edges" operation. **/
|
||||||
|
flowEdgesEntities.stream().forEach(edge -> loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(edge).newData(null).build()));
|
||||||
|
|
||||||
flowDataRepository.deleteAll(flowDataEntities);
|
flowDataRepository.deleteAll(flowDataEntities);
|
||||||
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
||||||
CallEntity callEntity = formEntity.getCall();
|
CallEntity callEntity = formEntity.getCall();
|
||||||
|
//cloned for oldCall data
|
||||||
|
CallEntity oldCallData = Utils.getClonedEntityForData(callEntity);
|
||||||
|
|
||||||
callEntity.setInitialForm(null);
|
callEntity.setInitialForm(null);
|
||||||
callEntity.setFinalForm(null);
|
callEntity.setFinalForm(null);
|
||||||
callRepository.save(callEntity);
|
callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "update call" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCallData).newData(callEntity)
|
||||||
|
.build());
|
||||||
|
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
} else {
|
} else {
|
||||||
throw new CustomValidationException(
|
throw new CustomValidationException(Status.BAD_REQUEST,
|
||||||
Status.BAD_REQUEST,
|
Translator.toLocale(GepafinConstant.UPDATING_FORM_VALUE_IMPACT_ON_FLOW, choosenField));
|
||||||
Translator.toLocale(GepafinConstant.UPDATING_FORM_VALUE_IMPACT_ON_FLOW, choosenField)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
||||||
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
||||||
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
formEntity = saveFormEntity(formEntity);
|
formEntity = saveFormEntity(formEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "update from" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldFormData).newData(formEntity)
|
||||||
|
.build());
|
||||||
|
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -226,12 +308,15 @@ public class FormDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
||||||
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
||||||
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
formEntity = saveFormEntity(formEntity);
|
formEntity = saveFormEntity(formEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update form data" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldFormData).newData(formEntity).build());
|
||||||
|
|
||||||
validateAndSaveCriteriaFormField(formEntity.getCall(), formEntity, formRequest.getContent());
|
validateAndSaveCriteriaFormField(formEntity.getCall(), formEntity, formRequest.getContent());
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
}
|
}
|
||||||
@@ -254,12 +339,28 @@ public class FormDao {
|
|||||||
validator.validateUserWithCall(user, formEntity.getCall().getId());
|
validator.validateUserWithCall(user, formEntity.getCall().getId());
|
||||||
List<FlowDataEntity> flowDataEntities=flowDataRepository.findByCallId(formEntity.getCall().getId());
|
List<FlowDataEntity> flowDataEntities=flowDataRepository.findByCallId(formEntity.getCall().getId());
|
||||||
List<FlowEdgesEntity> flowEdgesEntities=flowEdgesRepository.findByCallId(formEntity.getCall().getId());
|
List<FlowEdgesEntity> flowEdgesEntities=flowEdgesRepository.findByCallId(formEntity.getCall().getId());
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "delete all flow data" operation. **/
|
||||||
|
flowDataEntities.stream().forEach(data -> loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(data).newData(null).build()));
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "delete all flow edges" operation. **/
|
||||||
|
flowEdgesEntities.stream().forEach(edge -> loggingUtil.addVersionHistory(
|
||||||
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(edge).newData(null).build()));
|
||||||
|
|
||||||
flowDataRepository.deleteAll(flowDataEntities);
|
flowDataRepository.deleteAll(flowDataEntities);
|
||||||
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
||||||
CallEntity callEntity=formEntity.getCall();
|
CallEntity callEntity=formEntity.getCall();
|
||||||
|
//cloned for getting old call data
|
||||||
|
CallEntity oldCallData = Utils.getClonedEntityForData(callEntity);
|
||||||
|
|
||||||
callEntity.setFinalForm(null);
|
callEntity.setFinalForm(null);
|
||||||
callEntity.setInitialForm(null);
|
callEntity.setInitialForm(null);
|
||||||
callRepository.save(callEntity);
|
callRepository.save(callEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create Call" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(callEntity).build());
|
||||||
|
|
||||||
formRepository.delete(formEntity);
|
formRepository.delete(formEntity);
|
||||||
}
|
}
|
||||||
public List<FormResponseBean> getFormsByCallId(CallEntity callEntity){
|
public List<FormResponseBean> getFormsByCallId(CallEntity callEntity){
|
||||||
|
|||||||
@@ -3,12 +3,15 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.FormFieldEntity;
|
import net.gepafin.tendermanagement.entities.FormFieldEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FormFieldRequest;
|
import net.gepafin.tendermanagement.model.request.FormFieldRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.SettingRequestBean;
|
import net.gepafin.tendermanagement.model.request.SettingRequestBean;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.FormFieldResponseBean;
|
import net.gepafin.tendermanagement.model.response.FormFieldResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.SettingResponseBean;
|
import net.gepafin.tendermanagement.model.response.SettingResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.FormFieldRepository;
|
import net.gepafin.tendermanagement.repositories.FormFieldRepository;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
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.ResourceNotFoundException;
|
||||||
@@ -16,6 +19,8 @@ import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -26,6 +31,12 @@ public class FormFieldDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FormFieldRepository formFieldRepository;
|
private FormFieldRepository formFieldRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public FormFieldEntity convertFormFieldRequestToFormFieldEntity(FormFieldRequest formFieldRequest) {
|
public FormFieldEntity convertFormFieldRequestToFormFieldEntity(FormFieldRequest formFieldRequest) {
|
||||||
FormFieldEntity formFieldEntity = new FormFieldEntity();
|
FormFieldEntity formFieldEntity = new FormFieldEntity();
|
||||||
formFieldEntity.setLabel(formFieldRequest.getLabel());
|
formFieldEntity.setLabel(formFieldRequest.getLabel());
|
||||||
@@ -34,7 +45,11 @@ public class FormFieldDao {
|
|||||||
formFieldEntity.setSortOrder(formFieldRequest.getSortOrder());
|
formFieldEntity.setSortOrder(formFieldRequest.getSortOrder());
|
||||||
formFieldEntity.setValidators(Utils.convertMapIntoJsonString(formFieldRequest.getValidators()));
|
formFieldEntity.setValidators(Utils.convertMapIntoJsonString(formFieldRequest.getValidators()));
|
||||||
formFieldEntity.setSettings(setSettingRequestBean(formFieldRequest.getSettings()));
|
formFieldEntity.setSettings(setSettingRequestBean(formFieldRequest.getSettings()));
|
||||||
formFieldEntity = saveFormFieldEntity(formFieldEntity);
|
formFieldEntity = formFieldRepository.save(formFieldEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create FormField" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(formFieldEntity).build());
|
||||||
|
|
||||||
return formFieldEntity;
|
return formFieldEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,10 +66,10 @@ public class FormFieldDao {
|
|||||||
return formFieldResponseBean;
|
return formFieldResponseBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FormFieldEntity saveFormFieldEntity(FormFieldEntity formFieldEntity) {
|
// public FormFieldEntity saveFormFieldEntity(FormFieldEntity formFieldEntity) {
|
||||||
formFieldEntity = formFieldRepository.save(formFieldEntity);
|
// formFieldEntity = formFieldRepository.save(formFieldEntity);
|
||||||
return formFieldEntity;
|
// return formFieldEntity;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void validateFormField(FormFieldRequest formFieldRequest) {
|
public void validateFormField(FormFieldRequest formFieldRequest) {
|
||||||
if (formFieldRequest.getSettings() == null || formFieldRequest.getLabel() == null) {
|
if (formFieldRequest.getSettings() == null || formFieldRequest.getLabel() == null) {
|
||||||
@@ -71,6 +86,7 @@ public class FormFieldDao {
|
|||||||
|
|
||||||
public FormFieldResponseBean updateFormField(Long formFieldId, FormFieldRequest formFieldRequest) {
|
public FormFieldResponseBean updateFormField(Long formFieldId, FormFieldRequest formFieldRequest) {
|
||||||
FormFieldEntity formFieldEntity = validateFormField(formFieldId);
|
FormFieldEntity formFieldEntity = validateFormField(formFieldId);
|
||||||
|
FormFieldEntity oldFormFieldEntity = Utils.getClonedEntityForData(formFieldEntity);
|
||||||
Utils.setIfUpdated(formFieldEntity::getName, formFieldEntity::setName, formFieldRequest.getName());
|
Utils.setIfUpdated(formFieldEntity::getName, formFieldEntity::setName, formFieldRequest.getName());
|
||||||
Utils.setIfUpdated(formFieldEntity::getLabel, formFieldEntity::setLabel, formFieldRequest.getLabel());
|
Utils.setIfUpdated(formFieldEntity::getLabel, formFieldEntity::setLabel, formFieldRequest.getLabel());
|
||||||
Utils.setIfUpdated(formFieldEntity::getDescription, formFieldEntity::setDescription, formFieldRequest.getDescription());
|
Utils.setIfUpdated(formFieldEntity::getDescription, formFieldEntity::setDescription, formFieldRequest.getDescription());
|
||||||
@@ -80,7 +96,13 @@ public class FormFieldDao {
|
|||||||
Utils.setIfUpdated(formFieldEntity::getValidators, formFieldEntity::setValidators,
|
Utils.setIfUpdated(formFieldEntity::getValidators, formFieldEntity::setValidators,
|
||||||
Utils.convertMapIntoJsonString(formFieldRequest.getValidators()));
|
Utils.convertMapIntoJsonString(formFieldRequest.getValidators()));
|
||||||
formFieldEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
formFieldEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
formFieldEntity = saveFormFieldEntity(formFieldEntity);
|
|
||||||
|
formFieldEntity = formFieldRepository.save(formFieldEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update FormField" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldFormFieldEntity).newData(formFieldEntity).build());
|
||||||
|
|
||||||
|
|
||||||
return convertFormFieldEntityToFormFieldResponseBean(formFieldEntity);
|
return convertFormFieldEntityToFormFieldResponseBean(formFieldEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,6 +121,11 @@ public class FormFieldDao {
|
|||||||
public void deleteFormById(Long formFieldId) {
|
public void deleteFormById(Long formFieldId) {
|
||||||
FormFieldEntity formEntity = validateFormField(formFieldId);
|
FormFieldEntity formEntity = validateFormField(formFieldId);
|
||||||
formFieldRepository.delete(formEntity);
|
formFieldRepository.delete(formEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Delete FormField" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(formEntity).newData(null).build());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String setSettingRequestBean(List<SettingRequestBean> settingRequestBeans) {
|
public String setSettingRequestBean(List<SettingRequestBean> settingRequestBeans) {
|
||||||
|
|||||||
@@ -1,12 +1,17 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.HubEntity;
|
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.HubReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.HubResponseBean;
|
import net.gepafin.tendermanagement.model.response.HubResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.NanoIdUtils;
|
import net.gepafin.tendermanagement.model.util.NanoIdUtils;
|
||||||
import net.gepafin.tendermanagement.repositories.HubRepository;
|
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.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -22,15 +27,26 @@ public class HubDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HubRepository hubRepository;
|
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);
|
HubEntity hubEntity = createOrUpdateHubEntity(new HubEntity(), hubReq);
|
||||||
hubRepository.save(hubEntity);
|
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);
|
return convertToHubResponseBean(hubEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public HubResponseBean updateHub(Long hubId, HubReq hubReq) {
|
public HubResponseBean updateHub(HttpServletRequest request,Long hubId, HubReq hubReq) {
|
||||||
HubEntity hubEntity = validateHub(hubId);
|
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);
|
return convertToHubResponseBean(hubEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,10 +59,13 @@ public class HubDao {
|
|||||||
return hubs.stream().map(this::convertToHubResponseBean).toList();
|
return hubs.stream().map(this::convertToHubResponseBean).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteHub(Long hubId) {
|
public void deleteHub(HttpServletRequest request,Long hubId) {
|
||||||
HubEntity hubEntity = validateHub(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.deleteById(hubId);
|
||||||
hubRepository.save(hubEntity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public HubEntity validateHub(Long hubId) {
|
public HubEntity validateHub(Long hubId) {
|
||||||
|
|||||||
@@ -1,12 +1,17 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.LoginAttemptEntity;
|
import net.gepafin.tendermanagement.entities.LoginAttemptEntity;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.LoginAttemptPageableResponseBean;
|
import net.gepafin.tendermanagement.model.response.LoginAttemptPageableResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.LoginAttemptRepository;
|
import net.gepafin.tendermanagement.repositories.LoginAttemptRepository;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
@@ -24,10 +29,23 @@ public class LoginAttemptDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
LoginAttemptRepository loginAttemptRepository;
|
LoginAttemptRepository loginAttemptRepository;
|
||||||
|
|
||||||
public void createLoginAttempt(LoginAttemptEntity loginAttemptEntity) {
|
@Autowired
|
||||||
loginAttemptEntity.setAttemptDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
loginAttemptRepository.save(loginAttemptEntity);
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
|
public LoginAttemptEntity createLoginAttempt(LoginAttemptEntity loginAttemptEntity) {
|
||||||
|
|
||||||
|
VersionActionTypeEnum actionType;
|
||||||
|
loginAttemptEntity.setAttemptDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
|
loginAttemptEntity = loginAttemptRepository.save(loginAttemptEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "Create Login Attempt" operation. **/
|
||||||
|
loggingUtil.addVersionHistoryWithoutToken(
|
||||||
|
VersionHistoryRequest.builder().actionType(VersionActionTypeEnum.INSERT).request(request).oldData(null).newData(loginAttemptEntity).build());
|
||||||
|
|
||||||
|
return loginAttemptEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoginAttemptPageableResponseBean<List<LoginAttemptEntity>> getLoginAttemptsList(UserEntity userEntity, Integer pageNo, Integer pageLimit) {
|
public LoginAttemptPageableResponseBean<List<LoginAttemptEntity>> getLoginAttemptsList(UserEntity userEntity, Integer pageNo, Integer pageLimit) {
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
||||||
import net.gepafin.tendermanagement.model.request.LookUpDataRequest;
|
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.model.response.LookUpDataResponseBean;
|
||||||
import net.gepafin.tendermanagement.repositories.LookUpDataRepository;
|
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.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
@@ -25,6 +30,12 @@ public class LookUpDataDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private LookUpDataRepository lookUpDataRepository;
|
private LookUpDataRepository lookUpDataRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
HttpServletRequest request;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
LoggingUtil loggingUtil;
|
||||||
|
|
||||||
public LookUpDataResponseBean createLookUpData(LookUpDataRequest lookUpDataReq) {
|
public LookUpDataResponseBean createLookUpData(LookUpDataRequest lookUpDataReq) {
|
||||||
LookUpDataEntity entity = convertLookUpDataReqToLookUpDataEntity(lookUpDataReq);
|
LookUpDataEntity entity = convertLookUpDataReqToLookUpDataEntity(lookUpDataReq);
|
||||||
return convertLookUpDataEntityToResponseBean(entity);
|
return convertLookUpDataEntityToResponseBean(entity);
|
||||||
@@ -37,6 +48,9 @@ public class LookUpDataDao {
|
|||||||
entity.setValue(lookUpDataReq.getResponse());
|
entity.setValue(lookUpDataReq.getResponse());
|
||||||
validateLookUpDataEntity(entity);
|
validateLookUpDataEntity(entity);
|
||||||
lookUpDataRepository.save(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;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,16 +71,27 @@ public class LookUpDataDao {
|
|||||||
|
|
||||||
public LookUpDataResponseBean updateLookUpData(Long id, LookUpDataRequest lookUpDataReq) {
|
public LookUpDataResponseBean updateLookUpData(Long id, LookUpDataRequest lookUpDataReq) {
|
||||||
LookUpDataEntity entity = validateLookUpData(id);
|
LookUpDataEntity entity = validateLookUpData(id);
|
||||||
|
LookUpDataEntity oldLookUpData = Utils.getClonedEntityForData(entity);
|
||||||
|
|
||||||
setIfUpdated(entity::getTitle, entity::setTitle, lookUpDataReq.getTitle());
|
setIfUpdated(entity::getTitle, entity::setTitle, lookUpDataReq.getTitle());
|
||||||
setIfUpdated(entity::getValue, entity::setValue, lookUpDataReq.getValue());
|
setIfUpdated(entity::getValue, entity::setValue, lookUpDataReq.getValue());
|
||||||
setIfUpdated(entity::getResponse, entity::setResponse, lookUpDataReq.getResponse());
|
setIfUpdated(entity::getResponse, entity::setResponse, lookUpDataReq.getResponse());
|
||||||
lookUpDataRepository.save(entity);
|
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);
|
return convertLookUpDataEntityToResponseBean(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteLookUpData(Long id) {
|
public void deleteLookUpData(Long id) {
|
||||||
LookUpDataEntity entity = validateLookUpData(id);
|
LookUpDataEntity oldLookUpData = validateLookUpData(id);
|
||||||
lookUpDataRepository.deleteById(entity.getId());
|
|
||||||
|
/** 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) {
|
private LookUpDataResponseBean convertLookUpDataEntityToResponseBean(LookUpDataEntity entity) {
|
||||||
@@ -88,16 +113,20 @@ public class LookUpDataDao {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public LookUpDataEntity getOrCreateLookUpDataEntity(LookUpDataReq req,
|
public LookUpDataEntity getOrCreateLookUpDataEntity(LookUpDataReq req, LookUpDataEntity.LookUpDataTypeEnum type) {
|
||||||
LookUpDataEntity.LookUpDataTypeEnum type) {
|
|
||||||
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0l)) {
|
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0L)) {
|
||||||
LookUpDataEntity newEntity = new LookUpDataEntity();
|
LookUpDataEntity newEntity = new LookUpDataEntity();
|
||||||
newEntity.setTitle(req.getTitle());
|
newEntity.setTitle(req.getTitle());
|
||||||
newEntity.setValue(req.getValue());
|
newEntity.setValue(req.getValue());
|
||||||
newEntity.setResponse(req.getResponse());
|
newEntity.setResponse(req.getResponse());
|
||||||
newEntity.setType(type.getValue());
|
newEntity.setType(type.getValue());
|
||||||
validateLookUpDataEntity(newEntity);
|
validateLookUpDataEntity(newEntity);
|
||||||
return lookUpDataRepository.save(newEntity);
|
LookUpDataEntity lookUpDataEntity = lookUpDataRepository.save(newEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "create or update lookup data" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(lookUpDataEntity).build());
|
||||||
|
return lookUpDataEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
return lookUpDataRepository.findById(req.getLookUpDataId())
|
return lookUpDataRepository.findById(req.getLookUpDataId())
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -23,6 +27,11 @@ public class ProtocolDao {
|
|||||||
@Value("${default.hub.uuid}")
|
@Value("${default.hub.uuid}")
|
||||||
private String defaultHubUuid;
|
private String defaultHubUuid;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public Long getProtocolNumber(HubEntity hubEntity) {
|
public Long getProtocolNumber(HubEntity hubEntity) {
|
||||||
Long maxProtocolNumber = protocolRepository.findMaxProtocolNumberAndHubId(hubEntity.getId());
|
Long maxProtocolNumber = protocolRepository.findMaxProtocolNumberAndHubId(hubEntity.getId());
|
||||||
@@ -43,6 +52,10 @@ public class ProtocolDao {
|
|||||||
protocolEntity.setApplicationId(applicationEntity.getId());
|
protocolEntity.setApplicationId(applicationEntity.getId());
|
||||||
protocolEntity.setHubId(hubId);
|
protocolEntity.setHubId(hubId);
|
||||||
protocolRepository.save(protocolEntity);
|
protocolRepository.save(protocolEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for "create protocol" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(protocolEntity).build());
|
||||||
|
|
||||||
return protocolEntity;
|
return protocolEntity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,10 @@ import net.gepafin.tendermanagement.config.Translator;
|
|||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
import net.gepafin.tendermanagement.enums.RoleStatusEnum;
|
import net.gepafin.tendermanagement.enums.RoleStatusEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.enums.UserStatusEnum;
|
import net.gepafin.tendermanagement.enums.UserStatusEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.*;
|
import net.gepafin.tendermanagement.model.request.*;
|
||||||
import net.gepafin.tendermanagement.model.response.CompanyResponse;
|
import net.gepafin.tendermanagement.model.response.CompanyResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.RoleResponseBean;
|
import net.gepafin.tendermanagement.model.response.RoleResponseBean;
|
||||||
@@ -19,6 +22,7 @@ import net.gepafin.tendermanagement.repositories.UserRepository;
|
|||||||
import net.gepafin.tendermanagement.service.HubService;
|
import net.gepafin.tendermanagement.service.HubService;
|
||||||
import net.gepafin.tendermanagement.service.RoleService;
|
import net.gepafin.tendermanagement.service.RoleService;
|
||||||
import net.gepafin.tendermanagement.service.impl.AuthenticationService;
|
import net.gepafin.tendermanagement.service.impl.AuthenticationService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
@@ -80,8 +84,14 @@ public class UserDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AuthenticationService authenticationService;
|
private AuthenticationService authenticationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public JWTToken createUser(HttpServletRequest request, String tempToken, UserReq userReq) {
|
public JWTToken createUser(HttpServletRequest request, String tempToken, UserReq userReq) {
|
||||||
|
|
||||||
if (StringUtils.isEmpty(userReq.getHubUuid())) {
|
if (StringUtils.isEmpty(userReq.getHubUuid())) {
|
||||||
userReq.setHubUuid(defaultHubUuid);
|
userReq.setHubUuid(defaultHubUuid);
|
||||||
}
|
}
|
||||||
@@ -94,13 +104,23 @@ public class UserDao {
|
|||||||
log.info("User created with ID: {}", userEntity.getId());
|
log.info("User created with ID: {}", userEntity.getId());
|
||||||
LoginReq loginReq = new LoginReq();
|
LoginReq loginReq = new LoginReq();
|
||||||
loginReq.setEmail(userEntity.getEmail());
|
loginReq.setEmail(userEntity.getEmail());
|
||||||
|
LoginAttemptEntity loginAttemptEntity = null;
|
||||||
if (userEntity != null) {
|
if (userEntity != null) {
|
||||||
LoginAttemptEntity loginAttemptEntity =authenticationService.prepareLoginAttemptEntity(loginReq, request);
|
loginAttemptEntity = authenticationService.prepareLoginAttemptEntity(loginReq, request);
|
||||||
log.info("Authentication failed for email: {}", loginReq.getEmail());
|
log.info("Authentication failed for email: {}", loginReq.getEmail());
|
||||||
loginAttemptEntity.setUserId(userEntity.getId());
|
loginAttemptEntity.setUserId(userEntity.getId());
|
||||||
authenticationService.createSuccessLoginAttempt(loginAttemptEntity);
|
authenticationService.createSuccessLoginAttempt(loginAttemptEntity);
|
||||||
}
|
}
|
||||||
return authService.getJWTTokenBean(userEntity, Boolean.TRUE);
|
|
||||||
|
JWTToken token = authService.getJWTTokenBean(userEntity, Boolean.TRUE, loginAttemptEntity.getId());
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create beneficiary" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).newData(beneficiary).build());
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create user" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).newData(userEntity).build());
|
||||||
|
|
||||||
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BeneficiaryEntity createBeneficiary(RoleEntity roleEntity, UserReq userReq, HubEntity hub) {
|
private BeneficiaryEntity createBeneficiary(RoleEntity roleEntity, UserReq userReq, HubEntity hub) {
|
||||||
@@ -195,6 +215,7 @@ public class UserDao {
|
|||||||
public UserResponseBean updateUser(Long userId, UpdateUserReq userReq) {
|
public UserResponseBean updateUser(Long userId, UpdateUserReq userReq) {
|
||||||
log.info("Updating user with ID: {}", userId);
|
log.info("Updating user with ID: {}", userId);
|
||||||
UserEntity userEntity=validateUser(userId);
|
UserEntity userEntity=validateUser(userId);
|
||||||
|
UserEntity oldUserEntity = Utils.getClonedEntityForData(userEntity);
|
||||||
log.info("Current user details: {}", userEntity);
|
log.info("Current user details: {}", userEntity);
|
||||||
log.info("New user details: {}", userReq);
|
log.info("New user details: {}", userReq);
|
||||||
String newStatus = userReq.getStatus() != null ? userReq.getStatus().getValue() : null;
|
String newStatus = userReq.getStatus() != null ? userReq.getStatus().getValue() : null;
|
||||||
@@ -217,6 +238,10 @@ public class UserDao {
|
|||||||
}
|
}
|
||||||
setIfUpdated(userEntity.getBeneficiary()::getEmailPec, userEntity.getBeneficiary()::setEmailPec, userReq.getEmailPec());
|
setIfUpdated(userEntity.getBeneficiary()::getEmailPec, userEntity.getBeneficiary()::setEmailPec, userReq.getEmailPec());
|
||||||
userEntity = userRepository.save(userEntity);
|
userEntity = userRepository.save(userEntity);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Update user details" operation **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(oldUserEntity).newData(userEntity).build());
|
||||||
|
|
||||||
log.info("User updated with ID: {}", userEntity.getId());
|
log.info("User updated with ID: {}", userEntity.getId());
|
||||||
return convertUserEntityToUserResponse(userEntity);
|
return convertUserEntityToUserResponse(userEntity);
|
||||||
}
|
}
|
||||||
@@ -304,7 +329,11 @@ public class UserDao {
|
|||||||
|
|
||||||
public void deleteUser(Long id) {
|
public void deleteUser(Long id) {
|
||||||
log.info("Deleting user with ID: {}", id);
|
log.info("Deleting user with ID: {}", id);
|
||||||
validateUser(id);
|
UserEntity oldUserData = validateUser(id);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Delete user" operation. **/
|
||||||
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.DELETE).oldData(oldUserData).build());
|
||||||
|
|
||||||
userRepository.deleteById(id);
|
userRepository.deleteById(id);
|
||||||
log.info("User deleted with ID: {}", id);
|
log.info("User deleted with ID: {}", id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
import feign.FeignException;
|
import feign.FeignException;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.service.feignClient.VatCheckService;
|
import net.gepafin.tendermanagement.service.feignClient.VatCheckService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
@@ -38,9 +43,14 @@ public class VatCheckDao {
|
|||||||
|
|
||||||
public final Logger log = LoggerFactory.getLogger(VatCheckDao.class);
|
public final Logger log = LoggerFactory.getLogger(VatCheckDao.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public Map<String, Object> checkVatNumberApi(String vatNumber) {
|
public Map<String, Object> checkVatNumberApi(String vatNumber) {
|
||||||
|
|
||||||
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
@@ -50,12 +60,15 @@ public class VatCheckDao {
|
|||||||
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
||||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
headers.set(GepafinConstant.AUTHORIZATION, "Bearer " + vatCheckNewToken);
|
headers.set(GepafinConstant.AUTHORIZATION, "Bearer " + vatCheckNewToken);
|
||||||
headers.add(org.apache.http.HttpHeaders.USER_AGENT,
|
headers.add(org.apache.http.HttpHeaders.USER_AGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0");
|
||||||
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0");
|
|
||||||
|
|
||||||
URI baseUrl = URI.create(GepafinConstant.CHECK_VATNUMBER_V2_NEW_URL);
|
URI baseUrl = URI.create(GepafinConstant.CHECK_VATNUMBER_V2_NEW_URL);
|
||||||
ResponseEntity<Map<String, Object>> response = vatCheckService.checkVatNumber(baseUrl, vatNumber, headers);
|
ResponseEntity<Map<String, Object>> response = vatCheckService.checkVatNumber(baseUrl, vatNumber, headers);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Download company delegation" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.CHECK_COMPANY_VAT_NUMBER).build());
|
||||||
|
|
||||||
if (response.getStatusCode() == HttpStatus.OK && response.hasBody()) {
|
if (response.getStatusCode() == HttpStatus.OK && response.hasBody()) {
|
||||||
log.info("Successfully checked vat number");
|
log.info("Successfully checked vat number");
|
||||||
Map<String, Object> responseMap = response.getBody();
|
Map<String, Object> responseMap = response.getBody();
|
||||||
|
|||||||
@@ -1,21 +1,14 @@
|
|||||||
package net.gepafin.tendermanagement.entities;
|
package net.gepafin.tendermanagement.entities;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Getter;
|
import lombok.Data;
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "LOGIN_ATTEMPT")
|
@Table(name = "LOGIN_ATTEMPT")
|
||||||
@Getter
|
@Data
|
||||||
@Setter
|
public class LoginAttemptEntity extends BaseEntity{
|
||||||
public class LoginAttemptEntity {
|
|
||||||
|
|
||||||
@Id
|
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
||||||
@Column(name = "ID", unique = true)
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@Column(name = "USERNAME")
|
@Column(name = "USERNAME")
|
||||||
private String username;
|
private String username;
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package net.gepafin.tendermanagement.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "user_action")
|
||||||
|
public class UserActionEntity extends BaseEntity {
|
||||||
|
|
||||||
|
@Column(name = "USER_ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@Column(name = "ACTION_TYPE")
|
||||||
|
private String actionType;
|
||||||
|
|
||||||
|
@Column(name = "REQUEST_BODY")
|
||||||
|
private String requestBody;
|
||||||
|
|
||||||
|
@Column(name = "LOGIN_ATTEMPT_ID")
|
||||||
|
private Long loginAttemptId;
|
||||||
|
|
||||||
|
@Column(name = "IP_ADDRESS")
|
||||||
|
private String ipAddress;
|
||||||
|
|
||||||
|
@Column(name = "METHOD_TYPE")
|
||||||
|
private String methodType;
|
||||||
|
|
||||||
|
@Column(name = "HUB_ID")
|
||||||
|
private Long hubId;
|
||||||
|
|
||||||
|
@Column(name = "URL")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
@Column(name = "ACTION_CONTEXT")
|
||||||
|
private String actionContext;
|
||||||
|
|
||||||
|
@Column(name = "RESPONSE")
|
||||||
|
private String response;
|
||||||
|
|
||||||
|
@Column(name = "IS_DELETED", nullable = false)
|
||||||
|
private Boolean isDeleted = false;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package net.gepafin.tendermanagement.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "version_history")
|
||||||
|
public class VersionHistoryEntity extends BaseEntity {
|
||||||
|
|
||||||
|
@Column(name = "OLD_DATA", columnDefinition = "LONGTEXT")
|
||||||
|
private String oldData;
|
||||||
|
|
||||||
|
@Column(name = "NEW_DATA", columnDefinition = "LONGTEXT")
|
||||||
|
private String newData;
|
||||||
|
|
||||||
|
@Column(name = "TABLE_NAME")
|
||||||
|
private String tableName;
|
||||||
|
|
||||||
|
@Column(name = "ACTION_TYPE")
|
||||||
|
private String actionType;
|
||||||
|
|
||||||
|
@Column(name = "RECORD_ID")
|
||||||
|
private Long recordId;
|
||||||
|
|
||||||
|
@Column(name = "USER_ACTION_ID")
|
||||||
|
private Long userActionId;
|
||||||
|
|
||||||
|
@Column(name = "USER_ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@Column(name = "IS_DELETED", nullable = false)
|
||||||
|
private Boolean isDeleted = false;
|
||||||
|
}
|
||||||
@@ -0,0 +1,164 @@
|
|||||||
|
package net.gepafin.tendermanagement.enums;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
|
||||||
|
public enum UserActionContextEnum {
|
||||||
|
|
||||||
|
/** call action context **/
|
||||||
|
CREATE_CALL_STEP_1("CREATE_CALL_STEP_1"),
|
||||||
|
UPDATE_CALL_STEP_1("UPDATE_CALL_STEP_1"),
|
||||||
|
CREATE_UPDATE_CALL_STEP_2("CREATE_UPDATE_CALL_STEP_2"),
|
||||||
|
VALIDATE_CALL("VALIDATE_CALL"),
|
||||||
|
UPDATE_CALL_STATUS("UPDATE_CALL_STATUS"),
|
||||||
|
GET_CALL("GET_CALL"),
|
||||||
|
DOWNLOAD_CALL_DOCUMENT("DOWNLOAD_CALL_DOCUMENT"),
|
||||||
|
|
||||||
|
/** user action context **/
|
||||||
|
CREATE_USER("CREATE_USER"),
|
||||||
|
USER_LOGIN("USER_LOGIN"),
|
||||||
|
LOGOUT_USER("LOGOUT_USER"),
|
||||||
|
GET_USER("GET_USER"),
|
||||||
|
UPDATE_USER_DETAILS("UPDATE_USER_DETAILS"),
|
||||||
|
DELETE_USER("DELETE_USER"),
|
||||||
|
VALIDATE_NEW_USER_WITH_SPID_TOKEN("VALIDATE_NEW_USER_WITH_SPID_TOKEN"),
|
||||||
|
VALIDATE_EXISTING_USER_WITH_SPID_TOKEN("VALIDATE_EXISTING_USER_WITH_SPID_TOKEN"),
|
||||||
|
GET_VALID_USER_DETAILS("GET_VALID_USER_DETAILS"),
|
||||||
|
GET_ALL_USERS_BY_ROLE("GET_ALL_USERS_BY_ROLE"),
|
||||||
|
|
||||||
|
/** application action context **/
|
||||||
|
GET_APPLICATION("GET_APPLICATION"),
|
||||||
|
CREATE_UPDATE_APPLICATION_FORM("CREATE_UPDATE_APPLICATION_FORM"),
|
||||||
|
CREATE_APPLICATION("CREATE_APPLICATION"),
|
||||||
|
DELETE_APPLICATION("DELETE_APPLICATION"),
|
||||||
|
GET_ALL_APPLICATION("GET_ALL_APPLICATION"),
|
||||||
|
UPDATE_APPLICATION_STATUS("UPDATE_APPLICATION_STATUS"),
|
||||||
|
VALIDATE_APPLICATION("VALIDATE_APPLICATION"),
|
||||||
|
UPLOAD_SIGNED_DOCUMENT("UPLOAD_SIGNED_DOCUMENT"),
|
||||||
|
DOWNLOAD_PDF("DOWNLOAD_PDF"),
|
||||||
|
GET_SIGNED_DOCUMENT("GET_SIGNED_DOCUMENT"),
|
||||||
|
GET_NEXT_PREVIOUS_FORM("GET_NEXT_PREVIOUS_FORM"),
|
||||||
|
DOWNLOAD_APPLICATION_DOC_ZIP("DOWNLOAD_APPLICATION_DOC_ZIP"),
|
||||||
|
|
||||||
|
/** FAQ action context **/
|
||||||
|
CREATE_FAQ("CREATE_FAQ"),
|
||||||
|
GET_FAQ("GET_FAQ"),
|
||||||
|
UPDATE_FAQ_DETAILS("UPDATE_FAQ_DETAILS"),
|
||||||
|
DELETE_FAQ("DELETE_FAQ"),
|
||||||
|
|
||||||
|
/** company action context **/
|
||||||
|
CREATE_COMPANY("CREATE_COMPANY"),
|
||||||
|
GET_COMPANY("GET_COMPANY"),
|
||||||
|
UPDATE_COMPANY("UPDATE_COMPANY"),
|
||||||
|
DELETE_COMPANY("DELETE_COMPANY"),
|
||||||
|
UPLOAD_COMPANY_DELEGATION("UPLOAD_COMPANY_DELEGATION"),
|
||||||
|
DOWNLOAD_COMPANY_DELEGATION_TEMPLATE("DOWNLOAD_COMPANY_DELEGATION_TEMPLATE"),
|
||||||
|
GET_COMPANY_DELEGATION("GET_COMPANY_DELEGATION"),
|
||||||
|
DELETE_COMPANY_DELEGATION("DELETE_COMPANY_DELEGATION"),
|
||||||
|
CHECK_COMPANY_VAT_NUMBER("CHECK_COMPANY_VAT_NUMBER"),
|
||||||
|
GET_COMPANY_BY_USER("GET_COMPANY_BY_USER"),
|
||||||
|
REMOVE_COMPANY_FROM_USER("REMOVE_COMPANY_FROM_USER"),
|
||||||
|
|
||||||
|
/** 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"),
|
||||||
|
|
||||||
|
/** 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"),
|
||||||
|
DELETE_APPLICATION_EVALUATION("DELETE_APPLICATION_EVALUATION"),
|
||||||
|
|
||||||
|
/** Beneficiary Preferred Call action context **/
|
||||||
|
CREATE_BENEFICIARY_PREFERRED_CALL("CREATE_BENEFICIARY_PREFERRED_CALL"),
|
||||||
|
DELETE_BENEFICIARY_PREFERRED_CALL("DELETE_BENEFICIARY_PREFERRED_CALL"),
|
||||||
|
GET_BENEFICIARY_PREFERRED_CALL("GET_BENEFICIARY_PREFERRED_CALL"),
|
||||||
|
UPDATE_BENEFICIARY_PREFERRED_CALL("UPDATE_BENEFICIARY_PREFERRED_CALL"),
|
||||||
|
|
||||||
|
/** Assigned Application action context **/
|
||||||
|
CREATE_ASSIGNED_APPLICATION("CREATE_ASSIGNED_APPLICATION"),
|
||||||
|
DELETE_ASSIGNED_APPLICATION("DELETE_ASSIGNED_APPLICATION"),
|
||||||
|
GET_ASSIGNED_APPLICATION("GET_ASSIGNED_APPLICATION"),
|
||||||
|
UPDATE_ASSIGNED_APPLICATION_DETAILS("UPDATE_ASSIGNED_APPLICATION_DETAILS"),
|
||||||
|
|
||||||
|
/** Assigned form field context **/
|
||||||
|
CREATE_FORM_FIELD("CREATE_FORM_FIELD"),
|
||||||
|
UPDATE_FORM_FIELD("UPDATE_FORM_FIELD"),
|
||||||
|
GET_FORM_FIELD("GET_FORM_FIELD"),
|
||||||
|
DELETE_FORM_FIELD("DELETE_FORM_FIELD"),
|
||||||
|
|
||||||
|
/** Document action context **/
|
||||||
|
UPLOAD_CALL_DOCUMENT("UPLOAD_CALL_DOCUMENT"),
|
||||||
|
UPLOAD_CALL_IMAGES("UPLOAD_CALL_IMAGES"),
|
||||||
|
UPLOAD_APPLICATION_DOCUMENT("UPLOAD_APPLICATION_DOCUMENT"),
|
||||||
|
UPLOAD_APPLICATION_IMAGES("UPLOAD_APPLICATION_IMAGES"),
|
||||||
|
DELETE_DOCUMENT("DELETE_DOCUMENT"),
|
||||||
|
UPDATE_DOCUMENT("UPDATE_DOCUEMENT"),
|
||||||
|
UPDATE_IMAGES("UPDATE_IMAGES"),
|
||||||
|
GET_DOCUMENT("GET_DOCUMENT"),
|
||||||
|
|
||||||
|
/** Assigned flow context **/
|
||||||
|
CREATE_UPDATE_FLOW("CREATE_UPDATE_FLOW"),
|
||||||
|
GET_FLOW("GET_FLOW"),
|
||||||
|
|
||||||
|
/** Login attempt action context **/
|
||||||
|
GET_LOGIN_ATTEMPT_LIST("GET_LOGIN_ATTEMPT_LIST"),
|
||||||
|
ADD_LOGIN_ATTEMPT("ADD_LOGIN_ATTEMPT"),
|
||||||
|
|
||||||
|
/** Dashboard action context **/
|
||||||
|
GET_DASHBOARD_WIDGET_FOR_SUPER_ADMIN("GET_DASHBOARD_WIDGET_FOR_SUPER_ADMIN"),
|
||||||
|
GET_DASHBOARD_WIDGET_FOR_BENEFICIARY("GET_DASHBOARD_WIDGET_FOR_BENEFICIARY"),
|
||||||
|
|
||||||
|
/** Evaluation criteria action context **/
|
||||||
|
GET_EVALUATION_CRITERIA("GET_EVALUATION_CRITERIA"),
|
||||||
|
UPDATE_EVALUATION_CRITERIA("UPDATE_EVALUATION_CRITERIA"),
|
||||||
|
DELETE_EVALUATION_CRITERIA("DELETE_EVALUATION_CRITERIA"),
|
||||||
|
CREATE_EVALUATION_CRITERIA("CREATE_EVALUATION_CRITERIA"),
|
||||||
|
|
||||||
|
/** communication action context **/
|
||||||
|
ADD_COMMENT_TO_AMENDMENT_REQUEST("ADD_COMMENT_TO_AMENDMENT_REQUEST"),
|
||||||
|
UPDATE_COMMUNICATION_COMMENT("UPDATE_COMMUNICATION_COMMENT"),
|
||||||
|
GET_AMENDMENT_COMMENT("GET_AMENDMENT_COMMENT"),
|
||||||
|
DELETE_COMMENT_FROM_AMENDMENT("DELETE_COMMENT_FROM_AMENDMENT"),
|
||||||
|
|
||||||
|
/** form action context **/
|
||||||
|
GET_FORM("GET_FORM"),
|
||||||
|
CREATE_FORM("CREATE_FORM"),
|
||||||
|
UPDATE_FORM("UPDATE_FORM"),
|
||||||
|
DELETE_FORM("DELETE_FORM");
|
||||||
|
|
||||||
|
private final String value;
|
||||||
|
|
||||||
|
UserActionContextEnum(String value) {
|
||||||
|
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonValue
|
||||||
|
public String getValue() {
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package net.gepafin.tendermanagement.enums;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
|
||||||
|
public enum UserActionLogsEnum {
|
||||||
|
LOGIN("LOGIN"),
|
||||||
|
LOGOUT("LOGOUT"),
|
||||||
|
UPDATE("UPDATE"),
|
||||||
|
DELETE("DELETE"),
|
||||||
|
VIEW("VIEW"),
|
||||||
|
INSERT("INSERT"),
|
||||||
|
DOWNLOAD("DOWNLOAD"),
|
||||||
|
UPLOAD("UPLOAD");
|
||||||
|
|
||||||
|
private final String value;
|
||||||
|
|
||||||
|
UserActionLogsEnum(String value) {
|
||||||
|
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonValue
|
||||||
|
public String getValue() {
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package net.gepafin.tendermanagement.enums;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
|
||||||
|
public enum VersionActionTypeEnum {
|
||||||
|
UPDATE("UPDATE"),
|
||||||
|
DELETE("DELETE"),
|
||||||
|
SOFT_DELETE("SOFT_DELETE"),
|
||||||
|
INSERT("INSERT");
|
||||||
|
|
||||||
|
private final String value;
|
||||||
|
|
||||||
|
VersionActionTypeEnum(String value) {
|
||||||
|
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonValue
|
||||||
|
public String getValue() {
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package net.gepafin.tendermanagement.model.request;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class UserActionRequest {
|
||||||
|
private HttpServletRequest request;
|
||||||
|
private UserActionLogsEnum actionType;
|
||||||
|
private UserActionContextEnum actionContext;
|
||||||
|
private Object response;
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package net.gepafin.tendermanagement.model.request;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import net.gepafin.tendermanagement.entities.BaseEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class VersionHistoryRequest {
|
||||||
|
private BaseEntity oldData;
|
||||||
|
private BaseEntity newData;
|
||||||
|
private VersionActionTypeEnum actionType;
|
||||||
|
private HttpServletRequest request;
|
||||||
|
}
|
||||||
@@ -10,6 +10,8 @@ public class CommunicationResponseBean {
|
|||||||
|
|
||||||
private String comment;
|
private String comment;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
private LocalDateTime createdDate;
|
private LocalDateTime createdDate;
|
||||||
@@ -21,7 +23,8 @@ public class CommunicationResponseBean {
|
|||||||
private Long receiverUserId;
|
private Long receiverUserId;
|
||||||
|
|
||||||
private Long amendmentId;
|
private Long amendmentId;
|
||||||
public CommunicationResponseBean(LocalDateTime commentedDate, String comment, String title, LocalDateTime createdDate, LocalDateTime updatedDate, Long amendmentId) {
|
|
||||||
|
public CommunicationResponseBean(LocalDateTime commentedDate, String comment, String title, LocalDateTime createdDate, LocalDateTime updatedDate, Long amendmentId, Long id) {
|
||||||
|
|
||||||
this.commentedDate = commentedDate;
|
this.commentedDate = commentedDate;
|
||||||
this.comment = comment;
|
this.comment = comment;
|
||||||
@@ -29,9 +32,10 @@ public class CommunicationResponseBean {
|
|||||||
this.createdDate = createdDate;
|
this.createdDate = createdDate;
|
||||||
this.updatedDate = updatedDate;
|
this.updatedDate = updatedDate;
|
||||||
this.amendmentId = amendmentId;
|
this.amendmentId = amendmentId;
|
||||||
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommunicationResponseBean(LocalDateTime commentedDate, String comment, String title, LocalDateTime createdDate, LocalDateTime updatedDate, Long amendmentId,Long senderUserId,Long receiverUserId) {
|
public CommunicationResponseBean(LocalDateTime commentedDate, String comment, String title, LocalDateTime createdDate, LocalDateTime updatedDate, Long amendmentId,Long senderUserId,Long receiverUserId, Long id) {
|
||||||
|
|
||||||
this.commentedDate = commentedDate;
|
this.commentedDate = commentedDate;
|
||||||
this.comment = comment;
|
this.comment = comment;
|
||||||
@@ -41,6 +45,7 @@ public class CommunicationResponseBean {
|
|||||||
this.amendmentId = amendmentId;
|
this.amendmentId = amendmentId;
|
||||||
this.senderUserId = senderUserId;
|
this.senderUserId = senderUserId;
|
||||||
this.receiverUserId = receiverUserId;
|
this.receiverUserId = receiverUserId;
|
||||||
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommunicationResponseBean() {
|
public CommunicationResponseBean() {
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package net.gepafin.tendermanagement.model.util;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class LogResponse<T> implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
private String statusCode;
|
||||||
|
|
||||||
|
private String message;
|
||||||
|
}
|
||||||
@@ -7,16 +7,14 @@ import org.springframework.data.jpa.repository.Query;
|
|||||||
import org.springframework.data.repository.query.Param;
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface CommunicationRepository extends JpaRepository<CommunicationEntity, Long> {
|
public interface CommunicationRepository extends JpaRepository<CommunicationEntity, Long> {
|
||||||
|
|
||||||
@Query("Select new net.gepafin.tendermanagement.model.response.CommunicationResponseBean(c.commentedDate, c.communicationComment, c.communicationTitle, c.createdDate, c.updatedDate, c.applicationAmendmentRequest.id) " +
|
|
||||||
"from CommunicationEntity c Where c.applicationAmendmentRequest.id = :applicationAmendmentRequestId")
|
|
||||||
List<CommunicationResponseBean> findCommentsByApplicationAmendmentRequestId(@Param("applicationAmendmentRequestId") Long amendmentRequestId);
|
|
||||||
|
|
||||||
@Query("SELECT new net.gepafin.tendermanagement.model.response.CommunicationResponseBean( " + "c.commentedDate, c.communicationComment, c.communicationTitle, c.createdDate, c" +
|
@Query("SELECT new net.gepafin.tendermanagement.model.response.CommunicationResponseBean( " + "c.commentedDate, c.communicationComment, c.communicationTitle, c.createdDate, c" +
|
||||||
".updatedDate, c.applicationAmendmentRequest.id,c.senderUserId, c.receiverUserId) " + "FROM CommunicationEntity c " + "WHERE c.applicationAmendmentRequest.id = :amendmentId AND c.isDeleted = false")
|
".updatedDate, " + "c.applicationAmendmentRequest.id, c.senderUserId, c.receiverUserId, c.id " + ") " + "FROM CommunicationEntity c " + "WHERE c" +
|
||||||
|
".applicationAmendmentRequest.id = :amendmentId AND c.isDeleted = false")
|
||||||
List<CommunicationResponseBean> findCommentListDetailsByAmendmentId(@Param("amendmentId") Long amendmentId);
|
List<CommunicationResponseBean> findCommentListDetailsByAmendmentId(@Param("amendmentId") Long amendmentId);
|
||||||
|
|
||||||
|
Optional<CommunicationEntity> findByIdAndIsDeletedFalse(Long commentId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package net.gepafin.tendermanagement.repositories;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.entities.UserActionEntity;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface UserActionsRepository extends JpaRepository<UserActionEntity, Long> {
|
||||||
|
UserActionEntity findUserActionById(Long id);
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package net.gepafin.tendermanagement.repositories;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.entities.VersionHistoryEntity;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface VersionHistoryRepository extends JpaRepository<VersionHistoryEntity, Long> {
|
||||||
|
List<VersionHistoryEntity> findVersionHistoryById(Long id);
|
||||||
|
|
||||||
|
List<VersionHistoryEntity> findVersionHistoryByUserActionIdAndUserIdNull(Long id);
|
||||||
|
|
||||||
|
List<VersionHistoryEntity> findVersionHistoryByUserActionId(Long id);
|
||||||
|
}
|
||||||
@@ -31,7 +31,7 @@ public class NotificationScheduler {
|
|||||||
@Autowired
|
@Autowired
|
||||||
EmailNotificationDao emailNotificationDao;
|
EmailNotificationDao emailNotificationDao;
|
||||||
|
|
||||||
@Scheduled(cron = "0 0 1 * * ?")
|
// @Scheduled(cron = "0 0 1 * * ?")
|
||||||
void sendNotificationForRejectedApplicationToBeneficiary() {
|
void sendNotificationForRejectedApplicationToBeneficiary() {
|
||||||
|
|
||||||
List<ApplicationEntity> applicationsList = applicationRepository.findByIsDeletedFalse();
|
List<ApplicationEntity> applicationsList = applicationRepository.findByIsDeletedFalse();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.gepafin.tendermanagement.service;
|
package net.gepafin.tendermanagement.service;
|
||||||
|
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.entities.HubEntity;
|
import net.gepafin.tendermanagement.entities.HubEntity;
|
||||||
import net.gepafin.tendermanagement.model.request.HubReq;
|
import net.gepafin.tendermanagement.model.request.HubReq;
|
||||||
import net.gepafin.tendermanagement.model.response.HubResponseBean;
|
import net.gepafin.tendermanagement.model.response.HubResponseBean;
|
||||||
@@ -8,11 +9,11 @@ import net.gepafin.tendermanagement.model.response.HubResponseBean;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface HubService {
|
public interface HubService {
|
||||||
HubResponseBean createHub(HubReq hubReq);
|
HubResponseBean createHub(HttpServletRequest request,HubReq hubReq);
|
||||||
HubResponseBean updateHub(Long hubId, HubReq hubReq);
|
HubResponseBean updateHub(HttpServletRequest request,Long hubId, HubReq hubReq);
|
||||||
HubResponseBean getHubById(Long hubId);
|
HubResponseBean getHubById(Long hubId);
|
||||||
List<HubResponseBean> getAllHubs();
|
List<HubResponseBean> getAllHubs();
|
||||||
void deleteHub(Long hubId);
|
void deleteHub(HttpServletRequest request,Long hubId);
|
||||||
HubEntity getHubByUuid(String hubUuid);
|
HubEntity getHubByUuid(String hubUuid);
|
||||||
HubResponseBean getHubByHubUuid(String uuid);
|
HubResponseBean getHubByHubUuid(String uuid);
|
||||||
HubEntity valdateHub(Long hubId);
|
HubEntity valdateHub(Long hubId);
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ public class ApplicationServiceImpl implements ApplicationService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
||||||
return applicationDao.updateApplicationStatus(request, applicationId, status);
|
|
||||||
|
|
||||||
|
return applicationDao.updateApplicationStatus(request, applicationId, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -15,16 +15,20 @@ import net.gepafin.tendermanagement.entities.UserEntity;
|
|||||||
import net.gepafin.tendermanagement.enums.LoginAttemptResultEnum;
|
import net.gepafin.tendermanagement.enums.LoginAttemptResultEnum;
|
||||||
import net.gepafin.tendermanagement.enums.LoginAttemptTypeEnum;
|
import net.gepafin.tendermanagement.enums.LoginAttemptTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.UserStatusEnum;
|
import net.gepafin.tendermanagement.enums.UserStatusEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.LoginReq;
|
import net.gepafin.tendermanagement.model.request.LoginReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.CompanyResponse;
|
import net.gepafin.tendermanagement.model.response.CompanyResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.LoginResponse;
|
import net.gepafin.tendermanagement.model.response.LoginResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.RoleResponseBean;
|
import net.gepafin.tendermanagement.model.response.RoleResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.UserSamlResponse;
|
import net.gepafin.tendermanagement.model.response.UserSamlResponse;
|
||||||
import net.gepafin.tendermanagement.model.util.JWTToken;
|
import net.gepafin.tendermanagement.model.util.JWTToken;
|
||||||
|
import net.gepafin.tendermanagement.repositories.LoginAttemptRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.SamlResponseRepository;
|
import net.gepafin.tendermanagement.repositories.SamlResponseRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.UserRepository;
|
import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||||
import net.gepafin.tendermanagement.service.HubService;
|
import net.gepafin.tendermanagement.service.HubService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
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.ResourceNotFoundException;
|
||||||
@@ -51,6 +55,7 @@ public class AuthenticationService {
|
|||||||
|
|
||||||
private final TokenProvider tokenProvider;
|
private final TokenProvider tokenProvider;
|
||||||
private final AuthenticationManager authenticationManager;
|
private final AuthenticationManager authenticationManager;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CompanyDao companyDao;
|
private CompanyDao companyDao;
|
||||||
|
|
||||||
@@ -69,6 +74,15 @@ public class AuthenticationService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HubService hubService;
|
private HubService hubService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
LoginAttemptRepository loginAttemptRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public AuthenticationService(TokenProvider tokenProvider, AuthenticationManager authenticationManager) {
|
public AuthenticationService(TokenProvider tokenProvider, AuthenticationManager authenticationManager) {
|
||||||
this.tokenProvider = tokenProvider;
|
this.tokenProvider = tokenProvider;
|
||||||
@@ -103,7 +117,7 @@ public class AuthenticationService {
|
|||||||
createFailedLoginAttempt(loginAttemptEntity, e.getMessage());
|
createFailedLoginAttempt(loginAttemptEntity, e.getMessage());
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
return getJWTTokenBean(user, loginReq.getRememberMe());
|
return getJWTTokenBean(user, loginReq.getRememberMe(), loginAttemptEntity.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoginAttemptEntity prepareLoginAttemptEntity(LoginReq loginUserReq, HttpServletRequest request) {
|
public LoginAttemptEntity prepareLoginAttemptEntity(LoginReq loginUserReq, HttpServletRequest request) {
|
||||||
@@ -117,19 +131,21 @@ public class AuthenticationService {
|
|||||||
return loginAttemptEntity;
|
return loginAttemptEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createSuccessLoginAttempt(LoginAttemptEntity loginAttemptEntity) {
|
public LoginAttemptEntity createSuccessLoginAttempt(LoginAttemptEntity loginAttemptEntity) {
|
||||||
loginAttemptEntity.setResult(LoginAttemptResultEnum.SUCCESS.getValue());
|
loginAttemptEntity.setResult(LoginAttemptResultEnum.SUCCESS.getValue());
|
||||||
loginAttemptDao.createLoginAttempt(loginAttemptEntity);
|
return loginAttemptDao.createLoginAttempt(loginAttemptEntity);
|
||||||
}
|
}
|
||||||
public void createFailedLoginAttempt(LoginAttemptEntity loginAttemptEntity, String errorMsg) {
|
public void createFailedLoginAttempt(LoginAttemptEntity loginAttemptEntity, String errorMsg) {
|
||||||
loginAttemptEntity.setResult(LoginAttemptResultEnum.FAILED.getValue());
|
loginAttemptEntity.setResult(LoginAttemptResultEnum.FAILED.getValue());
|
||||||
loginAttemptEntity.setErrorMsg(errorMsg);
|
loginAttemptEntity.setErrorMsg(errorMsg);
|
||||||
loginAttemptDao.createLoginAttempt(loginAttemptEntity);
|
loginAttemptDao.createLoginAttempt(loginAttemptEntity);
|
||||||
}
|
}
|
||||||
public JWTToken getJWTTokenBean(UserEntity user, Boolean rememberMe) {
|
public JWTToken getJWTTokenBean(UserEntity user, Boolean rememberMe, Long loginAttemptId) {
|
||||||
|
UserEntity oldUserEntity = Utils.getClonedEntityForData(user);
|
||||||
user.setLastLogin(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
user.setLastLogin(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
userRepository.save(user);
|
user = userRepository.save(user);
|
||||||
String token = tokenProvider.createToken(rememberMe, user);
|
String token = tokenProvider.createToken(rememberMe, user, loginAttemptId);
|
||||||
|
|
||||||
log.info("JWT token generated for email: {}", user.getEmail());
|
log.info("JWT token generated for email: {}", user.getEmail());
|
||||||
RoleResponseBean roleResponseBean = roleDao.convertRoleEntityToRoleResponse(user.getRoleEntity());
|
RoleResponseBean roleResponseBean = roleDao.convertRoleEntityToRoleResponse(user.getRoleEntity());
|
||||||
|
|
||||||
@@ -137,6 +153,9 @@ public class AuthenticationService {
|
|||||||
|
|
||||||
JWTToken jwtToken = new JWTToken(token, loginResponse);
|
JWTToken jwtToken = new JWTToken(token, loginResponse);
|
||||||
|
|
||||||
|
/** This code is responsible for adding a version history log for the "Create user Or Update user" operation. **/
|
||||||
|
loggingUtil.addVersionHistoryWithoutToken(VersionHistoryRequest.builder().request(request).oldData(oldUserEntity).newData(user).actionType(VersionActionTypeEnum.UPDATE).build());
|
||||||
|
|
||||||
log.info("Login successful for email: {}", user.getEmail());
|
log.info("Login successful for email: {}", user.getEmail());
|
||||||
return jwtToken;
|
return jwtToken;
|
||||||
}
|
}
|
||||||
@@ -215,7 +234,8 @@ public class AuthenticationService {
|
|||||||
loginReq.setEmail(userEntity.getEmail());
|
loginReq.setEmail(userEntity.getEmail());
|
||||||
loginAttemptEntity = prepareLoginAttemptEntity(loginReq, request);
|
loginAttemptEntity = prepareLoginAttemptEntity(loginReq, request);
|
||||||
loginAttemptEntity.setUserId(userEntity.getId());
|
loginAttemptEntity.setUserId(userEntity.getId());
|
||||||
return getJWTTokenBean(userEntity, Boolean.TRUE);
|
LoginAttemptEntity loginAttempt = createSuccessLoginAttempt(loginAttemptEntity);
|
||||||
|
return getJWTTokenBean(userEntity, Boolean.TRUE, loginAttempt.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("Authentication login failed for email: {}",e.getMessage());
|
log.info("Authentication login failed for email: {}",e.getMessage());
|
||||||
loginAttemptEntity.setUserId(userId);
|
loginAttemptEntity.setUserId(userId);
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class CommunicationServiceImpl implements CommunicationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public ApplicationAmendmentResponse getAmendmentComments(HttpServletRequest request,Long id) {
|
public ApplicationAmendmentResponse getAmendmentComments(HttpServletRequest request,Long id) {
|
||||||
ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = applicationAmendmentRequestDao.validateApplicationAmendmentRequest(id);
|
ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = applicationAmendmentRequestDao.validateApplicationAmendmentRequest(id);
|
||||||
if (Boolean.FALSE.equals(validator.checkIsBeneficiary())) {
|
if (Boolean.FALSE.equals(validator.checkIsBeneficiary())) {
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ public class CompanyServiceImpl implements CompanyService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional
|
||||||
public CompanyDelegationResponse getCompanyDelegation(HttpServletRequest request, Long companyId) {
|
public CompanyDelegationResponse getCompanyDelegation(HttpServletRequest request, Long companyId) {
|
||||||
UserEntity userEntity =validator.validateUser(request);
|
UserEntity userEntity =validator.validateUser(request);
|
||||||
return delegationDao.getCompanyDelegation(userEntity, companyId);
|
return delegationDao.getCompanyDelegation(userEntity, companyId);
|
||||||
@@ -114,6 +114,7 @@ public class CompanyServiceImpl implements CompanyService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteCompanyDelegation(HttpServletRequest request, Long companyId) {
|
public void deleteCompanyDelegation(HttpServletRequest request, Long companyId) {
|
||||||
|
|
||||||
UserEntity userEntity = validator.validateUser(request);
|
UserEntity userEntity = validator.validateUser(request);
|
||||||
delegationDao.deleteCompanyDelegation(userEntity, companyId);
|
delegationDao.deleteCompanyDelegation(userEntity, companyId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ public class DocumentServiceImpl implements DocumentService {
|
|||||||
@Override
|
@Override
|
||||||
public void deleteFile(Long documentId) {
|
public void deleteFile(Long documentId) {
|
||||||
documentDao.deleteFile(documentId);
|
documentDao.deleteFile(documentId);
|
||||||
return ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.gepafin.tendermanagement.service.impl;
|
package net.gepafin.tendermanagement.service.impl;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.dao.HubDao;
|
import net.gepafin.tendermanagement.dao.HubDao;
|
||||||
import net.gepafin.tendermanagement.entities.HubEntity;
|
import net.gepafin.tendermanagement.entities.HubEntity;
|
||||||
import net.gepafin.tendermanagement.model.request.HubReq;
|
import net.gepafin.tendermanagement.model.request.HubReq;
|
||||||
@@ -19,14 +20,14 @@ public class HubServiceImpl implements HubService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public HubResponseBean createHub(HubReq hubReq) {
|
public HubResponseBean createHub(HttpServletRequest request,HubReq hubReq) {
|
||||||
return hubDao.createHub(hubReq);
|
return hubDao.createHub(request,hubReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public HubResponseBean updateHub(Long hubId, HubReq hubReq) {
|
public HubResponseBean updateHub(HttpServletRequest request,Long hubId, HubReq hubReq) {
|
||||||
return hubDao.updateHub(hubId, hubReq);
|
return hubDao.updateHub(request,hubId, hubReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -43,8 +44,8 @@ public class HubServiceImpl implements HubService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteHub(Long hubId) {
|
public void deleteHub(HttpServletRequest request,Long hubId) {
|
||||||
hubDao.deleteHub(hubId);
|
hubDao.deleteHub(request,hubId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import net.gepafin.tendermanagement.dao.UserDao;
|
import net.gepafin.tendermanagement.dao.UserDao;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.LoginReq;
|
import net.gepafin.tendermanagement.model.request.LoginReq;
|
||||||
import net.gepafin.tendermanagement.model.request.UpdateUserReq;
|
import net.gepafin.tendermanagement.model.request.UpdateUserReq;
|
||||||
import net.gepafin.tendermanagement.model.request.UserReq;
|
import net.gepafin.tendermanagement.model.request.UserReq;
|
||||||
@@ -13,6 +15,7 @@ import net.gepafin.tendermanagement.model.response.UserSamlResponse;
|
|||||||
import net.gepafin.tendermanagement.model.response.UserResponseBean;
|
import net.gepafin.tendermanagement.model.response.UserResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.JWTToken;
|
import net.gepafin.tendermanagement.model.util.JWTToken;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -31,6 +34,9 @@ public class UserServiceImpl implements UserService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public JWTToken createUser(HttpServletRequest request, String tempToken, UserReq userReq) {
|
public JWTToken createUser(HttpServletRequest request, String tempToken, UserReq userReq) {
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package net.gepafin.tendermanagement.util;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class IpAddressUtils {
|
||||||
|
|
||||||
|
private static final Pattern IPV4_PATTERN = Pattern.compile("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$");
|
||||||
|
|
||||||
|
private static final Pattern IPV6_PATTERN = Pattern.compile(
|
||||||
|
"([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|" + "([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|" + "([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|" + "([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|" + ":((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|" + "::(ffff(:0{1,4}){0,1}:){0,1}(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3,3}" + "([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([0-9a-fA-F]{1,4}:){1,4}:" + "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3,3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])");
|
||||||
|
|
||||||
|
public static String getClientIp(HttpServletRequest request) {
|
||||||
|
|
||||||
|
String ipAddress = null;
|
||||||
|
|
||||||
|
String[] headers = { "X-Forwarded-For", "X-Real-IP", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR" };
|
||||||
|
|
||||||
|
for (String header : headers) {
|
||||||
|
ipAddress = request.getHeader(header);
|
||||||
|
if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) {
|
||||||
|
ipAddress = ipAddress.split(",")[0].trim();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||||
|
ipAddress = request.getRemoteAddr();
|
||||||
|
}
|
||||||
|
if ("0:0:0:0:0:0:0:1".equals(ipAddress) || "127.0.0.1".equals(ipAddress)) {
|
||||||
|
ipAddress = "127.0.0.1";
|
||||||
|
}
|
||||||
|
if (isValidIpAddress(ipAddress)) {
|
||||||
|
return ipAddress;
|
||||||
|
} else {
|
||||||
|
return "Invalid IP";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isValidIpAddress(String ipAddress) {
|
||||||
|
|
||||||
|
return IPV4_PATTERN.matcher(ipAddress).matches() || IPV6_PATTERN.matcher(ipAddress).matches();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
330
src/main/java/net/gepafin/tendermanagement/util/LoggingUtil.java
Normal file
330
src/main/java/net/gepafin/tendermanagement/util/LoggingUtil.java
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
package net.gepafin.tendermanagement.util;
|
||||||
|
|
||||||
|
import io.jsonwebtoken.Claims;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.gepafin.tendermanagement.config.CachedBodyHttpServletRequest;
|
||||||
|
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserActionEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.VersionHistoryEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
|
import net.gepafin.tendermanagement.repositories.UserActionsRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.VersionHistoryRepository;
|
||||||
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.context.annotation.RequestScope;
|
||||||
|
|
||||||
|
import java.net.URLDecoder;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequestScope
|
||||||
|
public class LoggingUtil {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserActionsRepository userActionsRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VersionHistoryRepository versionHistoryRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TokenProvider tokenProvider;
|
||||||
|
|
||||||
|
public UserActionEntity logUserAction(UserActionRequest userActionRequest) {
|
||||||
|
UserActionEntity userAction = new UserActionEntity();
|
||||||
|
try {
|
||||||
|
String token = tokenProvider.extractTokenFromRequest(userActionRequest.getRequest());
|
||||||
|
Claims claims = tokenProvider.getClaimsFromToken(token);
|
||||||
|
Map<String, String[]> parameters = userActionRequest.getRequest().getParameterMap();
|
||||||
|
parameters.forEach((key, value) -> log.info("Query Parameter: {} = {}", key, Arrays.toString(value)));
|
||||||
|
Long userId = claims.get(GepafinConstant.USER_ID, Long.class);
|
||||||
|
Long loginAttemptId = claims.get(GepafinConstant.LOGIN_ATTEMPT_ID, Long.class);
|
||||||
|
UserEntity userEntity = userService.validateUser(userId);
|
||||||
|
|
||||||
|
String requestBody = null;
|
||||||
|
if (userActionRequest.getRequest() instanceof CachedBodyHttpServletRequest cachedRequest) {
|
||||||
|
requestBody = cachedRequest.getCachedBodyAsString();
|
||||||
|
}
|
||||||
|
// Decode the raw URI to handle encoded placeholders like %7BcommentId%7D
|
||||||
|
String rawUrl = userActionRequest.getRequest().getRequestURI();
|
||||||
|
String decodedUrl = URLDecoder.decode(rawUrl, StandardCharsets.UTF_8);
|
||||||
|
|
||||||
|
// Append query parameters if they exist
|
||||||
|
if (userActionRequest.getRequest().getQueryString() != null) {
|
||||||
|
decodedUrl += "?" + userActionRequest.getRequest().getQueryString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use the decoded URL as-is (optional normalization step if needed)
|
||||||
|
String normalizedUrl = normalizeUrl(decodedUrl);
|
||||||
|
|
||||||
|
// Set the normalized URL in the user action log
|
||||||
|
userAction.setActionType(userActionRequest.getActionType().getValue());
|
||||||
|
userAction.setUserId(userId);
|
||||||
|
userAction.setActionContext(userActionRequest.getActionContext().getValue());
|
||||||
|
userAction.setMethodType(userActionRequest.getRequest().getMethod());
|
||||||
|
userAction.setHubId(userEntity.getHub().getId());
|
||||||
|
// userAction.setUrl(userActionRequest.getRequest().getRequestURI());
|
||||||
|
userAction.setUrl(normalizedUrl);
|
||||||
|
userAction.setLoginAttemptId(loginAttemptId);
|
||||||
|
userAction.setIpAddress(IpAddressUtils.getClientIp(userActionRequest.getRequest()));
|
||||||
|
userAction.setRequestBody(requestBody);
|
||||||
|
String response = Utils.convertEntityToJsonForLogging(userActionRequest.getResponse());
|
||||||
|
userAction.setResponse(response);
|
||||||
|
userActionsRepository.save(userAction);
|
||||||
|
userActionRequest.getRequest().setAttribute(GepafinConstant.USER_ACTION_ID, userAction.getId());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error logging user action: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
return userAction;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String normalizeUrl(String url) {
|
||||||
|
|
||||||
|
url = url.replaceAll("(?<!:)//+", "/");
|
||||||
|
if (url.length() > 1 && url.endsWith("/")) {
|
||||||
|
url = url.substring(0, url.length() - 1);
|
||||||
|
}
|
||||||
|
url = URLDecoder.decode(url, StandardCharsets.UTF_8);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @Transactional
|
||||||
|
// public UserActionEntity updateUserAction(HttpServletResponse response, UserActionEntity userAction) {
|
||||||
|
// try {
|
||||||
|
// String requestBody = null;
|
||||||
|
// if (userAction. instanceof CachedBodyHttpServletRequest cachedRequest) {
|
||||||
|
// requestBody = cachedRequest.getCachedBodyAsString();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// LogResponse<String> logResponse = new LogResponse<>();
|
||||||
|
// logResponse.setStatus(response.getStatus());
|
||||||
|
// logResponse.setStatusCode(String.valueOf(response.getStatus()));
|
||||||
|
// logResponse.setMessage("SUCCESS");
|
||||||
|
//
|
||||||
|
// String serializedResponse;
|
||||||
|
// try {
|
||||||
|
// ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
// serializedResponse = objectMapper.writeValueAsString(logResponse);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// serializedResponse = "Error serializing LogResponse: " + e.getMessage();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// userAction.setResponse(serializedResponse);
|
||||||
|
// userActionsRepository.save(userAction);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// log.error("Error updating user action: {}", e.getMessage(), e);
|
||||||
|
// }
|
||||||
|
// return userAction;
|
||||||
|
// }
|
||||||
|
|
||||||
|
public void logVersionHistory(VersionHistoryRequest versionHistoryRequest, Long recordId, Long userActionId, String tableName) {
|
||||||
|
try {
|
||||||
|
VersionHistoryEntity history = new VersionHistoryEntity();
|
||||||
|
String token = tokenProvider.extractTokenFromRequest(versionHistoryRequest.getRequest());
|
||||||
|
Claims claims = tokenProvider.getClaimsFromToken(token);
|
||||||
|
Long userId = claims.get(GepafinConstant.USER_ID, Long.class);
|
||||||
|
String oldData = Utils.convertEntityToJsonForLogging(versionHistoryRequest.getOldData());
|
||||||
|
String newData = Utils.convertEntityToJsonForLogging(versionHistoryRequest.getNewData());
|
||||||
|
history.setUserActionId(userActionId);
|
||||||
|
history.setActionType(versionHistoryRequest.getActionType().getValue());
|
||||||
|
history.setOldData(oldData);
|
||||||
|
history.setNewData(newData);
|
||||||
|
history.setRecordId(recordId);
|
||||||
|
history.setTableName(tableName);
|
||||||
|
history.setUserId(userId);
|
||||||
|
versionHistoryRepository.save(history);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error logging version history: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void logVersionHistoryWithoutToken(VersionHistoryRequest versionHistoryRequest, Long recordId, Long userActionId, String tableName) {
|
||||||
|
try {
|
||||||
|
VersionHistoryEntity history = new VersionHistoryEntity();
|
||||||
|
Long userId = null;
|
||||||
|
String token = tokenProvider.extractTokenFromRequest(versionHistoryRequest.getRequest());
|
||||||
|
if(versionHistoryRequest.getRequest() != null && token != null)
|
||||||
|
{
|
||||||
|
Claims claims = tokenProvider.getClaimsFromToken(token);
|
||||||
|
userId = claims.get(GepafinConstant.USER_ID, Long.class);
|
||||||
|
}
|
||||||
|
String oldData = Utils.convertEntityToJsonForLogging(versionHistoryRequest.getOldData());
|
||||||
|
String newData = Utils.convertEntityToJsonForLogging(versionHistoryRequest.getNewData());
|
||||||
|
history.setUserActionId(userActionId);
|
||||||
|
history.setActionType(versionHistoryRequest.getActionType().getValue());
|
||||||
|
history.setOldData(oldData);
|
||||||
|
history.setNewData(newData);
|
||||||
|
history.setRecordId(recordId);
|
||||||
|
history.setTableName(tableName);
|
||||||
|
history.setUserId(userId);
|
||||||
|
versionHistoryRepository.save(history);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error logging version history: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTableName(Class<?> entityClass) {
|
||||||
|
try {
|
||||||
|
if (entityClass.isAnnotationPresent(Table.class)) {
|
||||||
|
Table tableAnnotation = entityClass.getAnnotation(Table.class);
|
||||||
|
return tableAnnotation.name();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error retrieving table name: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addVersionHistory(VersionHistoryRequest versionHistoryRequest) {
|
||||||
|
try {
|
||||||
|
Long userActionId = (Long) versionHistoryRequest.getRequest().getAttribute(GepafinConstant.USER_ACTION_ID);
|
||||||
|
Long recordId = null;
|
||||||
|
String tableName = null;
|
||||||
|
if(versionHistoryRequest.getNewData() != null) {
|
||||||
|
recordId = versionHistoryRequest.getNewData().getId();
|
||||||
|
tableName = getTableName(versionHistoryRequest.getNewData().getClass()).toUpperCase();
|
||||||
|
} else if(versionHistoryRequest.getOldData() != null){
|
||||||
|
recordId = versionHistoryRequest.getOldData().getId();
|
||||||
|
tableName = getTableName(versionHistoryRequest.getOldData().getClass()).toUpperCase();
|
||||||
|
}
|
||||||
|
logVersionHistory(versionHistoryRequest, recordId, userActionId, tableName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error adding version history: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addVersionHistoryWithoutToken(VersionHistoryRequest versionHistoryRequest) {
|
||||||
|
try {
|
||||||
|
Long userActionId = (Long) versionHistoryRequest.getRequest().getAttribute(GepafinConstant.USER_ACTION_ID);
|
||||||
|
Long recordId = null;
|
||||||
|
String tableName = null;
|
||||||
|
if(versionHistoryRequest.getNewData() != null) {
|
||||||
|
recordId = versionHistoryRequest.getNewData().getId();
|
||||||
|
tableName = getTableName(versionHistoryRequest.getNewData().getClass()).toUpperCase();
|
||||||
|
} else if(versionHistoryRequest.getOldData() != null){
|
||||||
|
recordId = versionHistoryRequest.getOldData().getId();
|
||||||
|
tableName = getTableName(versionHistoryRequest.getOldData().getClass()).toUpperCase();
|
||||||
|
}
|
||||||
|
versionHistoryRequest.setNewData(versionHistoryRequest.getNewData());
|
||||||
|
versionHistoryRequest.setRequest(versionHistoryRequest.getRequest());
|
||||||
|
logVersionHistoryWithoutToken(versionHistoryRequest, recordId, userActionId, tableName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error adding version history: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserActionEntity logUserActionWithoutToken(UserActionRequest userActionRequest) {
|
||||||
|
UserActionEntity userAction = new UserActionEntity();
|
||||||
|
try {
|
||||||
|
Long userId = null;
|
||||||
|
Long loginAttemptId = null;
|
||||||
|
Long hubId = null;
|
||||||
|
String token = tokenProvider.extractTokenFromRequest(userActionRequest.getRequest());
|
||||||
|
Map<String, String[]> parameters = userActionRequest.getRequest().getParameterMap();
|
||||||
|
parameters.forEach((key, value) -> log.info("Query Parameter : {} = {}", key, Arrays.toString(value)));
|
||||||
|
if(userActionRequest.getRequest() != null && token != null)
|
||||||
|
{
|
||||||
|
Claims claims = tokenProvider.getClaimsFromToken(token);
|
||||||
|
userId = claims.get(GepafinConstant.USER_ID, Long.class);
|
||||||
|
loginAttemptId = claims.get(GepafinConstant.LOGIN_ATTEMPT_ID, Long.class);
|
||||||
|
UserEntity userEntity = userService.validateUser(userId);
|
||||||
|
hubId = userEntity.getHub().getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
String requestBody = null;
|
||||||
|
if (userActionRequest.getRequest() instanceof CachedBodyHttpServletRequest cachedRequest) {
|
||||||
|
requestBody = cachedRequest.getCachedBodyAsString();
|
||||||
|
}
|
||||||
|
userAction.setActionType(userActionRequest.getActionType().getValue());
|
||||||
|
userAction.setUserId(userId);
|
||||||
|
userAction.setActionContext(userActionRequest.getActionContext().getValue());
|
||||||
|
userAction.setMethodType(userActionRequest.getRequest().getMethod());
|
||||||
|
userAction.setHubId(hubId);
|
||||||
|
userAction.setUrl(userActionRequest.getRequest().getRequestURI());
|
||||||
|
userAction.setLoginAttemptId(loginAttemptId);
|
||||||
|
userAction.setIpAddress(IpAddressUtils.getClientIp(userActionRequest.getRequest()));
|
||||||
|
userAction.setRequestBody(requestBody);
|
||||||
|
String response = Utils.convertEntityToJsonForLogging(userActionRequest.getResponse());
|
||||||
|
userAction.setResponse(response);
|
||||||
|
userActionsRepository.save(userAction);
|
||||||
|
userActionRequest.getRequest().setAttribute(GepafinConstant.USER_ACTION_ID, userAction.getId());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error logging user action: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
return userAction;
|
||||||
|
}
|
||||||
|
public void updateUserActionWithTokenDetails(Long actionId, String token, Object response) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
UserActionEntity userAction = getUserActionLogById(actionId);
|
||||||
|
if (userAction != null && token != null) {
|
||||||
|
Claims claims = tokenProvider.getClaimsFromToken(token);
|
||||||
|
Long userId = claims.get(GepafinConstant.USER_ID, Long.class);
|
||||||
|
Long loginAttemptId = claims.get(GepafinConstant.LOGIN_ATTEMPT_ID, Long.class);
|
||||||
|
UserEntity userEntity = userService.validateUser(userId);
|
||||||
|
|
||||||
|
userAction.setUserId(userId);
|
||||||
|
String responseData = Utils.convertEntityToJsonForLogging(response);
|
||||||
|
userAction.setResponse(responseData);
|
||||||
|
userAction.setLoginAttemptId(loginAttemptId);
|
||||||
|
userAction.setHubId(userEntity.getHub().getId());
|
||||||
|
// Save updated entity
|
||||||
|
userActionsRepository.save(userAction);
|
||||||
|
log.info("User action log updated with token details: {}", userAction.getId());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Failed to update user action with token details: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateVersionHistoriesWithTokenDetails(Long userActionId, String token) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Fetch version history entities for the given user action ID
|
||||||
|
List<VersionHistoryEntity> versionHistoryEntities = getVersionHistoryLogById(userActionId);
|
||||||
|
|
||||||
|
if (versionHistoryEntities != null && !versionHistoryEntities.isEmpty() && token != null) {
|
||||||
|
// Extract claims from the token
|
||||||
|
Claims claims = tokenProvider.getClaimsFromToken(token);
|
||||||
|
Long userId = claims.get(GepafinConstant.USER_ID, Long.class);
|
||||||
|
|
||||||
|
// Update each version history entity with the user ID
|
||||||
|
for (VersionHistoryEntity versionHistoryEntity : versionHistoryEntities) {
|
||||||
|
versionHistoryEntity.setUserId(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save all updated entities
|
||||||
|
versionHistoryRepository.saveAll(versionHistoryEntities);
|
||||||
|
|
||||||
|
log.info("Version History logs updated with userId: {}", userId);
|
||||||
|
} else {
|
||||||
|
log.warn("No version history or token provided for userActionId: {}", userActionId);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Failed to update version histories with token details: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public UserActionEntity getUserActionLogById(Long id) {
|
||||||
|
|
||||||
|
return userActionsRepository.findUserActionById(id);
|
||||||
|
}
|
||||||
|
public List<VersionHistoryEntity> getVersionHistoryLogById(Long id) {
|
||||||
|
|
||||||
|
return versionHistoryRepository.findVersionHistoryByUserActionId(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,20 +5,24 @@ import java.lang.reflect.Field;
|
|||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
import java.text.DecimalFormat;
|
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.time.format.DateTimeParseException;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.itextpdf.styledxmlparser.jsoup.Jsoup;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
|
import jakarta.persistence.ManyToMany;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
|
import jakarta.persistence.OneToMany;
|
||||||
|
import jakarta.persistence.OneToOne;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
@@ -54,9 +58,8 @@ public class Utils {
|
|||||||
|
|
||||||
public static final Logger log = LoggerFactory.getLogger(Utils.class);
|
public static final Logger log = LoggerFactory.getLogger(Utils.class);
|
||||||
|
|
||||||
private static final ObjectMapper mapper = new ObjectMapper()
|
private static final ObjectMapper mapper = new ObjectMapper().registerModule(new JavaTimeModule()).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||||
.registerModule(new JavaTimeModule())
|
.registerModule(new JavaTimeModule()).disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
|
||||||
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
||||||
|
|
||||||
public static <T, U> U convertObject(T source, Class<U> destinationClass) {
|
public static <T, U> U convertObject(T source, Class<U> destinationClass) {
|
||||||
try {
|
try {
|
||||||
@@ -517,7 +520,48 @@ public class Utils {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> String listToCommaSeparatedString(List<T> list) {
|
public static <T> String listToCommaSeparatedString(List<T> list) {
|
||||||
return String.join(", ", list.stream().map(String::valueOf).toList());
|
return String.join(", ", list.stream().map(String::valueOf).toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String convertEntityToJsonForLogging(Object entity) {
|
||||||
|
|
||||||
|
if (entity == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
JsonNode entityNode = mapper.valueToTree(entity);
|
||||||
|
ObjectNode objectNode = (ObjectNode) entityNode;
|
||||||
|
|
||||||
|
Field[] fields = entity.getClass().getDeclaredFields();
|
||||||
|
for (Field field : fields) {
|
||||||
|
if (field.isAnnotationPresent(ManyToOne.class) || field.isAnnotationPresent(OneToMany.class) || field.isAnnotationPresent(
|
||||||
|
OneToOne.class) || field.isAnnotationPresent(ManyToMany.class)) {
|
||||||
|
objectNode.remove(field.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mapper.writeValueAsString(objectNode);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
log.error("Failed to parse entity in json {}", e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T getClonedEntityForData(T entity) {
|
||||||
|
|
||||||
|
if (entity == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
String json = mapper.writeValueAsString(entity);
|
||||||
|
@SuppressWarnings("unchecked") T clonedEntity = (T) mapper.readValue(json, entity.getClass());
|
||||||
|
return clonedEntity;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Failed to clone entity {}", e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,13 +5,16 @@ import lombok.extern.log4j.Log4j2;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.enums.ApplicationAmendmentRequestEnum;
|
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.ApplicationAmendmentRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequestBean;
|
import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequestBean;
|
||||||
import net.gepafin.tendermanagement.model.request.CloseAmendmentRequest;
|
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.response.ApplicationAmendmentRequestResponse;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService;
|
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.ApplicationAmendmentRequestApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -29,8 +32,16 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme
|
|||||||
@Autowired
|
@Autowired
|
||||||
ApplicationAmendmentRequestService applicationAmendmentRequestService;
|
ApplicationAmendmentRequestService applicationAmendmentRequestService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> getApplicationDataForAmendment(HttpServletRequest request, Long applicationEvaluationId) {
|
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> 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);
|
ApplicationAmendmentRequestResponse applicationAmendmentBean = applicationAmendmentRequestService.getApplicationDataForAmendment(request,applicationEvaluationId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationAmendmentBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_DATA_FOR_AMENDMENT_SUCCESS_MSG)));
|
.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
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> createApplicationAmendmentRequest(HttpServletRequest request, Long applicationEvaluationId, ApplicationAmendmentRequest applicationAmendmentRequest) {
|
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> 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);
|
ApplicationAmendmentRequestResponse applicationAmendmentRequestResponse = applicationAmendmentRequestService.createApplicationAmendmentRequest(request,applicationEvaluationId,applicationAmendmentRequest);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationAmendmentRequestResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.CREATE_APPLICATION_DATA_FOR_AMENDMENT_MSG)));
|
.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
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteApplicationAmendmentRequest(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<Void>> deleteApplicationAmendmentRequest(HttpServletRequest request, Long id) {
|
||||||
log.info("Delete Application Amendment Request- Application Amendment ID: {}", 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);
|
applicationAmendmentRequestService.deleteApplicationAmendmentRequest(request,id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
||||||
@@ -54,6 +74,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> getApplicationAmendmentRequestById(HttpServletRequest request,Long id) {
|
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> getApplicationAmendmentRequestById(HttpServletRequest request,Long id) {
|
||||||
log.info("Get Application Amendment Request By 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);
|
ApplicationAmendmentRequestResponse applicationAmendmentRequestResponse = applicationAmendmentRequestService.getApplicationAmendmentRequestById(request,id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationAmendmentRequestResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
.body(new Response<>(applicationAmendmentRequestResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
||||||
@@ -62,6 +87,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId) {
|
public ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId) {
|
||||||
log.info("Get All Applications Amendment Request");
|
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<ApplicationAmendmentRequestResponse> applicationAmendmentRequestResponses = applicationAmendmentRequestService.getAllApplicationAmendmentRequest(request,userId);
|
List<ApplicationAmendmentRequestResponse> applicationAmendmentRequestResponses = applicationAmendmentRequestService.getAllApplicationAmendmentRequest(request,userId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationAmendmentRequestResponses, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
.body(new Response<>(applicationAmendmentRequestResponses, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
||||||
@@ -70,15 +100,25 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean) {
|
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean) {
|
||||||
log.info("Update Application Amendment");
|
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);
|
ApplicationAmendmentRequestResponse updateApplicationAmendment = applicationAmendmentRequestService.updateApplicationAmendment(request, id, applicationAmendmentRequestBean);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(updateApplicationAmendment, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG)));
|
.body(new Response<>(updateApplicationAmendment, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request, Long beneficiaryUserId) {
|
public ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request, Long beneficiaryId) {
|
||||||
log.info("Get All Application Amendment Request By Beneficiary ID");
|
log.info("Get All Application Amendment Request By Beneficiary ID");
|
||||||
List<ApplicationAmendmentRequestResponse> applicationAmendmentRequestResponseList = applicationAmendmentRequestService.getAllAmendmentRequestByBeneficiaryId(request, beneficiaryUserId);
|
|
||||||
|
/** 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<ApplicationAmendmentRequestResponse> applicationAmendmentRequestResponseList = applicationAmendmentRequestService.getAllAmendmentRequestByBeneficiaryId(request, beneficiaryId);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(applicationAmendmentRequestResponseList, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
.body(new Response<>(applicationAmendmentRequestResponseList, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_AMENDMENT_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
@@ -86,6 +126,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> closeApplicationAmendmentRequest(HttpServletRequest request, Long id, CloseAmendmentRequest closeAmendmentRequest) {
|
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> closeApplicationAmendmentRequest(HttpServletRequest request, Long id, CloseAmendmentRequest closeAmendmentRequest) {
|
||||||
log.info("Closing Amendment Request");
|
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);
|
ApplicationAmendmentRequestResponse amendmentRequestResponse = applicationAmendmentRequestService.closeAmendmentRequest(request, id,closeAmendmentRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(amendmentRequestResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_CLOSED_SUCCESFULLY)));
|
.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);
|
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);
|
ApplicationAmendmentRequestResponse response = applicationAmendmentRequestService.extendResponseDays(request, id, addedDays);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -106,6 +155,11 @@ public class ApplicationAmendmentRequestController implements ApplicationAmendme
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId,List<ApplicationAmendmentRequestEnum> statuses) {
|
public ResponseEntity<Response<List<ApplicationAmendmentRequestResponse>>> getAmendmentByApplicationId(HttpServletRequest request, Long applicationId,List<ApplicationAmendmentRequestEnum> 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<ApplicationAmendmentRequestResponse> applicationAmendmentBean = applicationAmendmentRequestService.getAmendmentByApplicationId(request,applicationId,statuses);
|
List<ApplicationAmendmentRequestResponse> applicationAmendmentBean = applicationAmendmentRequestService.getAmendmentByApplicationId(request,applicationId,statuses);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationAmendmentBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_DATA_FOR_AMENDMENT_SUCCESS_MSG)));
|
.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
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> updateApplicationAmendmentStatus(HttpServletRequest request, Long applicationAmendmentId,
|
public ResponseEntity<Response<ApplicationAmendmentRequestResponse>> updateApplicationAmendmentStatus(HttpServletRequest request, Long applicationAmendmentId,
|
||||||
ApplicationAmendmentRequestEnum status) {
|
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);
|
ApplicationAmendmentRequestResponse applicationResponse = applicationAmendmentRequestService.updateApplicationAmendmentStatus(request, applicationAmendmentId, status);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG)));
|
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_UPDATE_SUCCESSFULLY_MSG)));
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
|
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
|
||||||
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.FormActionEnum;
|
import net.gepafin.tendermanagement.enums.FormActionEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
|
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.ApplicationGetResponseBean;
|
import net.gepafin.tendermanagement.model.response.ApplicationGetResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.ApplicationResponse;
|
import net.gepafin.tendermanagement.model.response.ApplicationResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.ApplicationResponseBean;
|
import net.gepafin.tendermanagement.model.response.ApplicationResponseBean;
|
||||||
@@ -15,6 +18,7 @@ import net.gepafin.tendermanagement.model.response.NextOrPreviousFormResponse;
|
|||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationService;
|
import net.gepafin.tendermanagement.service.ApplicationService;
|
||||||
import net.gepafin.tendermanagement.service.PdfService;
|
import net.gepafin.tendermanagement.service.PdfService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.ApplicationApi;
|
import net.gepafin.tendermanagement.web.rest.api.ApplicationApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -43,9 +47,19 @@ public class ApplicationApiController implements ApplicationApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PdfService pdfService;
|
private PdfService pdfService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationResponseBean>> createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long applicationId, Long formId) {
|
public ResponseEntity<Response<ApplicationResponseBean>> createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long applicationId,
|
||||||
|
Long formId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create or update application form" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.CREATE_UPDATE_APPLICATION_FORM).build());
|
||||||
|
|
||||||
ApplicationResponseBean applicationResponseBean = applicationService.createApplication(request, applicationRequestBean, applicationId, formId);
|
ApplicationResponseBean applicationResponseBean = applicationService.createApplication(request, applicationRequestBean, applicationId, formId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(applicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_CREATED_SUCCESS_MSG)));
|
.body(new Response<>(applicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_CREATED_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
@@ -54,38 +68,63 @@ public class ApplicationApiController implements ApplicationApi {
|
|||||||
public ResponseEntity<Response<ApplicationGetResponseBean>> getApplicationByFormId(HttpServletRequest request
|
public ResponseEntity<Response<ApplicationGetResponseBean>> getApplicationByFormId(HttpServletRequest request
|
||||||
, Long applicationId, Long formId) {
|
, Long applicationId, Long formId) {
|
||||||
log.info("Get Application by ID - Application ID: {}", applicationId);
|
log.info("Get Application by ID - Application ID: {}", applicationId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get Application" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_APPLICATION).build());
|
||||||
|
|
||||||
ApplicationGetResponseBean application = applicationService.getApplicationByFormId(request, applicationId, formId);
|
ApplicationGetResponseBean application = applicationService.getApplicationByFormId(request, applicationId, formId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(application, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_SUCCESS_MSG)));
|
.body(new Response<>(application, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteApplication(HttpServletRequest request,
|
public ResponseEntity<Response<Void>> deleteApplication(HttpServletRequest request, Long applicationId) {
|
||||||
Long applicationId) {
|
|
||||||
log.info("Delete Application - Application ID: {}", applicationId);
|
log.info("Delete Application - Application ID: {}", applicationId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Delete Application" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_APPLICATION).build());
|
||||||
|
|
||||||
applicationService.deleteApplication(request, applicationId);
|
applicationService.deleteApplication(request, applicationId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_APPLICATION_SUCCESS_MSG)));
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_APPLICATION_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationResponse>> createApplicationByCallId(HttpServletRequest request, Long companyId, ApplicationRequest applicationRequest, Long callId) {
|
public ResponseEntity<Response<ApplicationResponse>> createApplicationByCallId(HttpServletRequest request, Long companyId, ApplicationRequest applicationRequest, Long callId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create application" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.CREATE_APPLICATION).build());
|
||||||
|
|
||||||
ApplicationResponse applicationResponseBean = applicationService.createApplication(request, companyId, applicationRequest, callId);
|
ApplicationResponse applicationResponseBean = applicationService.createApplication(request, companyId, applicationRequest, callId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(applicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_CREATED_SUCCESS_MSG)));
|
.body(new Response<>(applicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_CREATED_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<ApplicationResponse>>> getAllApplications(HttpServletRequest request, Long callId, Long companyId, List<ApplicationStatusTypeEnum> statusList) {
|
public ResponseEntity<Response<List<ApplicationResponse>>> getAllApplications(HttpServletRequest request, Long callId, Long companyId,
|
||||||
|
List<ApplicationStatusTypeEnum> statusList) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get application" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_ALL_APPLICATION).build());
|
||||||
|
|
||||||
List<ApplicationResponse> applications = applicationService.getAllApplications(request, callId, companyId, statusList);
|
List<ApplicationResponse> applications = applicationService.getAllApplications(request, callId, companyId, statusList);
|
||||||
log.info("Get All Applications");
|
log.info("Get All Applications");
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
|
||||||
.body(new Response<>(applications, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_SUCCESS_MSG)));
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(applications, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_APPLICATION_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<NextOrPreviousFormResponse>> getNextOrPreviousForm(HttpServletRequest request, Long applicationId,
|
public ResponseEntity<Response<NextOrPreviousFormResponse>> getNextOrPreviousForm(HttpServletRequest request, Long applicationId,
|
||||||
Long formId, FormActionEnum action) {
|
Long formId, FormActionEnum action) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "get next or previous form" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_NEXT_PREVIOUS_FORM).build());
|
||||||
|
|
||||||
NextOrPreviousFormResponse data = applicationService.getNextOrPreviousForm(request, applicationId, formId, action);
|
NextOrPreviousFormResponse data = applicationService.getNextOrPreviousForm(request, applicationId, formId, action);
|
||||||
log.info("Get Next Or Previous Form ");
|
log.info("Get Next Or Previous Form ");
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -93,15 +132,24 @@ public class ApplicationApiController implements ApplicationApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationResponse>> updateApplicationStatus(HttpServletRequest request, Long applicationId,
|
public ResponseEntity<Response<ApplicationResponse>> updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
||||||
ApplicationStatusTypeEnum status) {
|
|
||||||
|
/** This code is responsible for creating user action logs for the "update application status" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.UPDATE_APPLICATION_STATUS).build());
|
||||||
|
|
||||||
ApplicationResponse applicationResponse = applicationService.updateApplicationStatus(request, applicationId, status);
|
ApplicationResponse applicationResponse = applicationService.updateApplicationStatus(request, applicationId, status);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_STATUS_UPDATED_SUCCESSFULLY)));
|
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_STATUS_UPDATED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<byte[]> generateApplicationPdf(HttpServletRequest request, Long applicationId) {
|
public ResponseEntity<byte[]> generateApplicationPdf(HttpServletRequest request, Long applicationId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Generate pdf for application" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DOWNLOAD).actionContext(UserActionContextEnum.DOWNLOAD_PDF).build());
|
||||||
|
|
||||||
byte[] pdfBytes = pdfService.generatePdf(request, applicationId);
|
byte[] pdfBytes = pdfService.generatePdf(request, applicationId);
|
||||||
|
|
||||||
// Prepare headers for downloading the PDF
|
// Prepare headers for downloading the PDF
|
||||||
@@ -116,21 +164,29 @@ public class ApplicationApiController implements ApplicationApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationSignedDocumentResponse>> uploadSignedDocument(HttpServletRequest request,
|
public ResponseEntity<Response<ApplicationSignedDocumentResponse>> uploadSignedDocument(HttpServletRequest request, Long applicationId, MultipartFile file) {
|
||||||
Long applicationId, MultipartFile file) {
|
|
||||||
log.info("upload signed document applicationId: {}", applicationId);
|
log.info("upload signed document applicationId: {}", applicationId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Upload signed document" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.UPLOAD_SIGNED_DOCUMENT).build());
|
||||||
|
|
||||||
ApplicationSignedDocumentResponse response = applicationService.uploadSignedDocument(request, applicationId, file);
|
ApplicationSignedDocumentResponse response = applicationService.uploadSignedDocument(request, applicationId, file);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.SIGNED_DOCUMENT_FILE_UPLOAD_SUCCESS)));
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.SIGNED_DOCUMENT_FILE_UPLOAD_SUCCESS)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationSignedDocumentResponse>> getSignedDocument(HttpServletRequest request,
|
public ResponseEntity<Response<ApplicationSignedDocumentResponse>> getSignedDocument(HttpServletRequest request, Long applicationId) {
|
||||||
Long applicationId) {
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get signed document" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_SIGNED_DOCUMENT).build());
|
||||||
|
|
||||||
ApplicationSignedDocumentResponse response = applicationService.getSignedDocument(request, applicationId);
|
ApplicationSignedDocumentResponse response = applicationService.getSignedDocument(request, applicationId);
|
||||||
|
|
||||||
log.info("get signed document applicationId: {}", applicationId);
|
log.info("get signed document applicationId: {}", applicationId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_SIGNED_DOCUMENT_FILE_SUCCESS)));
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_SIGNED_DOCUMENT_FILE_SUCCESS)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
// @Override
|
||||||
@@ -144,12 +200,20 @@ public class ApplicationApiController implements ApplicationApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationResponse>> validateApplication(HttpServletRequest request, Long applicationId) {
|
public ResponseEntity<Response<ApplicationResponse>> validateApplication(HttpServletRequest request, Long applicationId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "validate application" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.VALIDATE_APPLICATION).build());
|
||||||
|
|
||||||
ApplicationResponse applicationResponse = applicationService.validateApplication(request, applicationId);
|
ApplicationResponse applicationResponse = applicationService.validateApplication(request, applicationId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_STATUS_UPDATED_SUCCESSFULLY)));
|
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_STATUS_UPDATED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<byte[]> downloadApplicationDocumentsAsZip(HttpServletRequest request, Long applicationId) {
|
public ResponseEntity<byte[]> downloadApplicationDocumentsAsZip(HttpServletRequest request, Long applicationId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "download application document as zip" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DOWNLOAD).actionContext(UserActionContextEnum.DOWNLOAD_APPLICATION_DOC_ZIP).build());
|
||||||
|
|
||||||
byte[] zipFile = applicationService.downloadApplicationDocumentsAsZip(request, applicationId);
|
byte[] zipFile = applicationService.downloadApplicationDocumentsAsZip(request, applicationId);
|
||||||
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
|||||||
@@ -4,10 +4,14 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.enums.ApplicationStatusForEvaluation;
|
import net.gepafin.tendermanagement.enums.ApplicationStatusForEvaluation;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
|
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.ApplicationEvaluationResponse;
|
import net.gepafin.tendermanagement.model.response.ApplicationEvaluationResponse;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationEvaluationService;
|
import net.gepafin.tendermanagement.service.ApplicationEvaluationService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.ApplicationEvaluationApi;
|
import net.gepafin.tendermanagement.web.rest.api.ApplicationEvaluationApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -23,12 +27,20 @@ public class ApplicationEvaluationApiController implements ApplicationEvaluation
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationEvaluationService applicationEvaluationService;
|
private ApplicationEvaluationService applicationEvaluationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationEvaluationResponse>> createOrUpdateApplicationEvaluation(
|
public ResponseEntity<Response<ApplicationEvaluationResponse>> createOrUpdateApplicationEvaluation(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
Long assignedApplicationsId,
|
Long assignedApplicationsId,
|
||||||
ApplicationEvaluationRequest evaluationRequest) {
|
ApplicationEvaluationRequest evaluationRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create or update Application Evaluation" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.CREATE_UPDATE_APPLICATION_EVALUATION).build());
|
||||||
|
|
||||||
|
|
||||||
ApplicationEvaluationResponse response = applicationEvaluationService.createOrUpdateApplicationEvaluation(
|
ApplicationEvaluationResponse response = applicationEvaluationService.createOrUpdateApplicationEvaluation(
|
||||||
request, evaluationRequest, assignedApplicationsId);
|
request, evaluationRequest, assignedApplicationsId);
|
||||||
|
|
||||||
@@ -41,6 +53,11 @@ public class ApplicationEvaluationApiController implements ApplicationEvaluation
|
|||||||
public ResponseEntity<Response<ApplicationEvaluationResponse>> getApplicationEvaluationByApplicationId(
|
public ResponseEntity<Response<ApplicationEvaluationResponse>> getApplicationEvaluationByApplicationId(
|
||||||
HttpServletRequest request, Long applicationId, Long assignedApplicationId) {
|
HttpServletRequest request, Long applicationId, Long assignedApplicationId) {
|
||||||
|
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get Application Evaluation" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_APPLICATION_EVALUATION).build());
|
||||||
|
|
||||||
|
|
||||||
ApplicationEvaluationResponse response = null;
|
ApplicationEvaluationResponse response = null;
|
||||||
response = applicationEvaluationService.getApplicationEvaluationByApplicationId(request, applicationId,assignedApplicationId);
|
response = applicationEvaluationService.getApplicationEvaluationByApplicationId(request, applicationId,assignedApplicationId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -51,6 +68,13 @@ public class ApplicationEvaluationApiController implements ApplicationEvaluation
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteApplicationEvaluation(HttpServletRequest request,
|
public ResponseEntity<Response<Void>> deleteApplicationEvaluation(HttpServletRequest request,
|
||||||
Long id) {
|
Long id) {
|
||||||
|
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Delete Application Evaluation" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_APPLICATION_EVALUATION).build());
|
||||||
|
|
||||||
|
|
||||||
applicationEvaluationService.deleteApplicationEvaluation(request, id);
|
applicationEvaluationService.deleteApplicationEvaluation(request, id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_DELETED_SUCCESSFULLY)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_DELETED_SUCCESSFULLY)));
|
||||||
|
|||||||
@@ -4,10 +4,14 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
|
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
|
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.AssignedApplicationsService;
|
import net.gepafin.tendermanagement.service.AssignedApplicationsService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.AssignedApplicationsApi;
|
import net.gepafin.tendermanagement.web.rest.api.AssignedApplicationsApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -25,10 +29,15 @@ public class AssignedApplicationsController implements AssignedApplicationsApi {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
AssignedApplicationsService assignedApplicationsService;
|
AssignedApplicationsService assignedApplicationsService;
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<AssignedApplicationsResponse>> createAssignedApplications(HttpServletRequest request, Long applicationId, Long userId, AssignedApplicationsRequest assignedApplicationsRequest) {
|
public ResponseEntity<Response<AssignedApplicationsResponse>> createAssignedApplications(HttpServletRequest request, Long applicationId, Long userId, AssignedApplicationsRequest assignedApplicationsRequest) {
|
||||||
log.info("Assigning Application To PreInstructor");
|
log.info("Assigning Application To PreInstructor");
|
||||||
|
/** This code is responsible for creating user action logs for the "Create Assigned Applications" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT)
|
||||||
|
.actionContext(UserActionContextEnum.CREATE_ASSIGNED_APPLICATION).build());
|
||||||
AssignedApplicationsResponse responseData = assignedApplicationsService.createAssignedApplications(request, applicationId, userId, assignedApplicationsRequest);
|
AssignedApplicationsResponse responseData = assignedApplicationsService.createAssignedApplications(request, applicationId, userId, assignedApplicationsRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(responseData, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_ASSIGNED)));
|
.body(new Response<>(responseData, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_ASSIGNED)));
|
||||||
@@ -37,6 +46,9 @@ public class AssignedApplicationsController implements AssignedApplicationsApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteAssignedApplication(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<Void>> deleteAssignedApplication(HttpServletRequest request, Long id) {
|
||||||
log.info("Delete Assigned Application - Assigned Application ID: {}", id);
|
log.info("Delete Assigned Application - Assigned Application ID: {}", id);
|
||||||
|
/** This code is responsible for creating user action logs for the "Delete Assigned Applications" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_ASSIGNED_APPLICATION).build());
|
||||||
|
|
||||||
assignedApplicationsService.deleteApplication(request, id);
|
assignedApplicationsService.deleteApplication(request, id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_ASSIGNED_APPLICATION_SUCCESS_MSG)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_ASSIGNED_APPLICATION_SUCCESS_MSG)));
|
||||||
@@ -45,6 +57,9 @@ public class AssignedApplicationsController implements AssignedApplicationsApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<AssignedApplicationsResponse>>> getAllAssignedApplications(HttpServletRequest request, Long userId) {
|
public ResponseEntity<Response<List<AssignedApplicationsResponse>>> getAllAssignedApplications(HttpServletRequest request, Long userId) {
|
||||||
log.info("Get All Assigned Applications");
|
log.info("Get All Assigned Applications");
|
||||||
|
/** This code is responsible for creating user action logs for the "get Assigned Applications" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_ASSIGNED_APPLICATION).build());
|
||||||
List<AssignedApplicationsResponse> applications = assignedApplicationsService.getAllAssignedApplications(request, userId);
|
List<AssignedApplicationsResponse> applications = assignedApplicationsService.getAllAssignedApplications(request, userId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applications, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ASSIGNED_APPLICATION_SUCCESS_MSG)));
|
.body(new Response<>(applications, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ASSIGNED_APPLICATION_SUCCESS_MSG)));
|
||||||
@@ -53,6 +68,9 @@ public class AssignedApplicationsController implements AssignedApplicationsApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<AssignedApplicationsResponse>> updateAssignedApplication(HttpServletRequest request, Long id, AssignedApplicationsRequest updateAssignedApplicationRequest) {
|
public ResponseEntity<Response<AssignedApplicationsResponse>> updateAssignedApplication(HttpServletRequest request, Long id, AssignedApplicationsRequest updateAssignedApplicationRequest) {
|
||||||
log.info("Update Assigned Application");
|
log.info("Update Assigned Application");
|
||||||
|
/** This code is responsible for "Updating Assigned Applications details" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.UPDATE_ASSIGNED_APPLICATION_DETAILS).build());
|
||||||
AssignedApplicationsResponse updateAssignedApplication = assignedApplicationsService.updateAssignedApplication(request, id, updateAssignedApplicationRequest);
|
AssignedApplicationsResponse updateAssignedApplication = assignedApplicationsService.updateAssignedApplication(request, id, updateAssignedApplicationRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(updateAssignedApplication, Status.SUCCESS, Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_UPDATE_SUCCESSFULLY_MSG)));
|
.body(new Response<>(updateAssignedApplication, Status.SUCCESS, Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_UPDATE_SUCCESSFULLY_MSG)));
|
||||||
@@ -61,6 +79,10 @@ public class AssignedApplicationsController implements AssignedApplicationsApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<AssignedApplicationsResponse>> getAssignedApplicationById(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<AssignedApplicationsResponse>> getAssignedApplicationById(HttpServletRequest request, Long id) {
|
||||||
log.info("Get Assigned Applications By Id");
|
log.info("Get Assigned Applications By Id");
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "get Assigned Applications by id" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_ASSIGNED_APPLICATION).build());
|
||||||
AssignedApplicationsResponse application = assignedApplicationsService.getAssignedApplicationById(request, id);
|
AssignedApplicationsResponse application = assignedApplicationsService.getAssignedApplicationById(request, id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(application, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ASSIGNED_APPLICATION_SUCCESS_MSG)));
|
.body(new Response<>(application, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ASSIGNED_APPLICATION_SUCCESS_MSG)));
|
||||||
|
|||||||
@@ -4,11 +4,15 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.enums.BeneficiaryCallStatus;
|
import net.gepafin.tendermanagement.enums.BeneficiaryCallStatus;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.BeneficiaryPreferredCallReq;
|
import net.gepafin.tendermanagement.model.request.BeneficiaryPreferredCallReq;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.BeneficiaryPreferredCallResponseBean;
|
import net.gepafin.tendermanagement.model.response.BeneficiaryPreferredCallResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.BeneficiaryPreferredCallService;
|
import net.gepafin.tendermanagement.service.BeneficiaryPreferredCallService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.BeneficiaryPreferredCallApi;
|
import net.gepafin.tendermanagement.web.rest.api.BeneficiaryPreferredCallApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -27,10 +31,16 @@ public class BeneficiaryPreferredCallApiController implements BeneficiaryPreferr
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BeneficiaryPreferredCallService beneficiaryPreferredCallService;
|
private BeneficiaryPreferredCallService beneficiaryPreferredCallService;
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<BeneficiaryPreferredCallResponseBean>> createBeneficiaryPreferredCall(HttpServletRequest request, BeneficiaryPreferredCallReq beneficiaryPreferredCallReq) {
|
public ResponseEntity<Response<BeneficiaryPreferredCallResponseBean>> createBeneficiaryPreferredCall(HttpServletRequest request, BeneficiaryPreferredCallReq beneficiaryPreferredCallReq) {
|
||||||
log.info("Creating Beneficiary Preferred Call");
|
log.info("Creating Beneficiary Preferred Call");
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create Beneficiary Preferred Call" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.CREATE_BENEFICIARY_PREFERRED_CALL).build());
|
||||||
|
|
||||||
BeneficiaryPreferredCallResponseBean responseBean = beneficiaryPreferredCallService.createBeneficiaryPreferredCall(request, beneficiaryPreferredCallReq);
|
BeneficiaryPreferredCallResponseBean responseBean = beneficiaryPreferredCallService.createBeneficiaryPreferredCall(request, beneficiaryPreferredCallReq);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(responseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.BENEFICIARY_PREFERRED_CALL_CREATED_SUCCESS_MSG)));
|
.body(new Response<>(responseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.BENEFICIARY_PREFERRED_CALL_CREATED_SUCCESS_MSG)));
|
||||||
@@ -47,6 +57,12 @@ public class BeneficiaryPreferredCallApiController implements BeneficiaryPreferr
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<BeneficiaryPreferredCallResponseBean>> getBeneficiaryPreferredCallById(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<BeneficiaryPreferredCallResponseBean>> getBeneficiaryPreferredCallById(HttpServletRequest request, Long id) {
|
||||||
log.info("Fetching Beneficiary Preferred Call by ID - ID: {}", id);
|
log.info("Fetching Beneficiary Preferred Call by ID - ID: {}", id);
|
||||||
|
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get Beneficiary Preferred Call by id" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_BENEFICIARY_PREFERRED_CALL).build());
|
||||||
|
|
||||||
BeneficiaryPreferredCallResponseBean response = beneficiaryPreferredCallService.getBeneficiaryPreferredCallById(request, id);
|
BeneficiaryPreferredCallResponseBean response = beneficiaryPreferredCallService.getBeneficiaryPreferredCallById(request, id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_BENEFICIARY_PREFERRED_CALL_SUCCESS_MSG)));
|
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_BENEFICIARY_PREFERRED_CALL_SUCCESS_MSG)));
|
||||||
@@ -55,6 +71,10 @@ public class BeneficiaryPreferredCallApiController implements BeneficiaryPreferr
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteBeneficiaryPreferredCall(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<Void>> deleteBeneficiaryPreferredCall(HttpServletRequest request, Long id) {
|
||||||
log.info("Deleting Beneficiary Preferred Call - ID: {}", id);
|
log.info("Deleting Beneficiary Preferred Call - ID: {}", id);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Delete Beneficiary Preferred Call" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_BENEFICIARY_PREFERRED_CALL).build());
|
||||||
|
|
||||||
beneficiaryPreferredCallService.deleteBeneficiaryPreferredCall(request, id);
|
beneficiaryPreferredCallService.deleteBeneficiaryPreferredCall(request, id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_BENEFICIARY_PREFERRED_CALL_SUCCESS_MSG)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELETE_BENEFICIARY_PREFERRED_CALL_SUCCESS_MSG)));
|
||||||
@@ -63,6 +83,11 @@ public class BeneficiaryPreferredCallApiController implements BeneficiaryPreferr
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> updateBeneficiaryPreferredCallStatus(HttpServletRequest request, Long id, BeneficiaryCallStatus status) {
|
public ResponseEntity<Response<Void>> updateBeneficiaryPreferredCallStatus(HttpServletRequest request, Long id, BeneficiaryCallStatus status) {
|
||||||
log.info("Updating status of Beneficiary Preferred Call - ID: {}, Status: {}", id, status);
|
log.info("Updating status of Beneficiary Preferred Call - ID: {}, Status: {}", id, status);
|
||||||
|
|
||||||
|
/** This code is responsible for "Updating Beneficiary Preferred Call details" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.UPDATE_BENEFICIARY_PREFERRED_CALL).build());
|
||||||
|
|
||||||
beneficiaryPreferredCallService.updateBeneficiaryPreferredCallStatus(request, id, status);
|
beneficiaryPreferredCallService.updateBeneficiaryPreferredCallStatus(request, id, status);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.BENEFICIARY_PREFERRED_CALL_STATUS_UPDATED_SUCCESS_MSG)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.BENEFICIARY_PREFERRED_CALL_STATUS_UPDATED_SUCCESS_MSG)));
|
||||||
@@ -71,6 +96,10 @@ public class BeneficiaryPreferredCallApiController implements BeneficiaryPreferr
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<BeneficiaryPreferredCallResponseBean>>> getBeneficiaryPreferredCallByUserId(HttpServletRequest request,Long userId,Long beneficiaryId,Long companyId) {
|
public ResponseEntity<Response<List<BeneficiaryPreferredCallResponseBean>>> getBeneficiaryPreferredCallByUserId(HttpServletRequest request,Long userId,Long beneficiaryId,Long companyId) {
|
||||||
log.info("Fetching all Beneficiary Preferred Calls for User ID");
|
log.info("Fetching all Beneficiary Preferred Calls for User ID");
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get Beneficiary Preferred Call" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_BENEFICIARY_PREFERRED_CALL).build());
|
||||||
|
|
||||||
List<BeneficiaryPreferredCallResponseBean> response = beneficiaryPreferredCallService.getBeneficiaryPreferredCallByUserId(request, userId,beneficiaryId,companyId);
|
List<BeneficiaryPreferredCallResponseBean> response = beneficiaryPreferredCallService.getBeneficiaryPreferredCallByUserId(request, userId,beneficiaryId,companyId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ALL_BENEFICIARY_PREFERRED_CALLS_SUCCESS_MSG)));
|
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ALL_BENEFICIARY_PREFERRED_CALLS_SUCCESS_MSG)));
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.enums.CallStatusEnum;
|
import net.gepafin.tendermanagement.enums.CallStatusEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -33,10 +37,17 @@ public class CallApiController implements CallApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CallService callService;
|
private CallService callService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor=Exception.class)
|
||||||
public ResponseEntity<Response<CallResponse>> createCallStep1(HttpServletRequest request, CreateCallRequestStep1 createCallRequest) {
|
public ResponseEntity<Response<CallResponse>> createCallStep1(HttpServletRequest request, CreateCallRequestStep1 createCallRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create Call Step 1" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT)
|
||||||
|
.actionContext(UserActionContextEnum.CREATE_CALL_STEP_1).build());
|
||||||
|
|
||||||
CallResponse createCallResponseBean = callService.createCallStep1(request, createCallRequest);
|
CallResponse createCallResponseBean = callService.createCallStep1(request, createCallRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG)));
|
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG)));
|
||||||
@@ -45,6 +56,11 @@ public class CallApiController implements CallApi {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor=Exception.class)
|
||||||
public ResponseEntity<Response<CallResponse>> createCallStep2(HttpServletRequest request, Long callId, CreateCallRequestStep2 createCallRequest) {
|
public ResponseEntity<Response<CallResponse>> createCallStep2(HttpServletRequest request, Long callId, CreateCallRequestStep2 createCallRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create or update Call step 2" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.CREATE_UPDATE_CALL_STEP_2).build());
|
||||||
|
|
||||||
CallResponse createCallResponseBean = callService.createCallStep2(request, callId, createCallRequest);
|
CallResponse createCallResponseBean = callService.createCallStep2(request, callId, createCallRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG)));
|
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG)));
|
||||||
@@ -53,29 +69,51 @@ public class CallApiController implements CallApi {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor=Exception.class)
|
||||||
public ResponseEntity<Response<CallResponse>> updateCallStep1(HttpServletRequest request, Long callId, UpdateCallRequestStep1 updateCallRequest) {
|
public ResponseEntity<Response<CallResponse>> updateCallStep1(HttpServletRequest request, Long callId, UpdateCallRequestStep1 updateCallRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "update Call step 1" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.UPDATE_CALL_STEP_1).build());
|
||||||
|
|
||||||
CallResponse createCallResponseBean = callService.updateCallStep1(request, callId, updateCallRequest);
|
CallResponse createCallResponseBean = callService.updateCallStep1(request, callId, updateCallRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_UPDATE_SUCCESSFULLY_MSG)));
|
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_UPDATE_SUCCESSFULLY_MSG)));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional
|
||||||
public ResponseEntity<Response<CallResponse>> getCallById(HttpServletRequest request, Long callId,Long companyId) {
|
public ResponseEntity<Response<CallResponse>> getCallById(HttpServletRequest request, Long callId,Long companyId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "get Call by id" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_CALL).build());
|
||||||
|
|
||||||
CallResponse createCallResponseBean = callService.getCallById(request, callId,companyId);
|
CallResponse createCallResponseBean = callService.getCallById(request, callId,companyId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_FETCH_SUCCESS_MSG)));
|
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_FETCH_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional
|
||||||
public ResponseEntity<Response<List<CallDetailsResponseBean>>> getAllCalls(HttpServletRequest request,Long companyId,Boolean onlyPreferredCall) {
|
public ResponseEntity<Response<List<CallDetailsResponseBean>>> getAllCalls(HttpServletRequest request,Long companyId,Boolean onlyPreferredCall) {
|
||||||
List<CallDetailsResponseBean> calls = callService.getAllCalls(request,companyId,onlyPreferredCall);
|
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "get all Calls" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_CALL).build());
|
||||||
|
|
||||||
|
List<CallDetailsResponseBean> calls = callService.getAllCalls(request, companyId, onlyPreferredCall);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(calls, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_FETCH_SUCCESS_MSG)));
|
.body(new Response<>(calls, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_FETCH_SUCCESS_MSG)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<CallResponse>> validateCallData(HttpServletRequest request, Long callId) {
|
public ResponseEntity<Response<CallResponse>> validateCallData(HttpServletRequest request, Long callId) {
|
||||||
|
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "validate Call" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.VALIDATE_CALL).build());
|
||||||
|
|
||||||
|
|
||||||
CallResponse call = callService.validateCallData(request, callId);
|
CallResponse call = callService.validateCallData(request, callId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -83,11 +121,21 @@ public class CallApiController implements CallApi {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<CallResponse>> updateCallStatus(HttpServletRequest request, Long callId, CallStatusEnum status) {
|
public ResponseEntity<Response<CallResponse>> updateCallStatus(HttpServletRequest request, Long callId, CallStatusEnum status) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "update Call status" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.UPDATE_CALL_STATUS).build());
|
||||||
|
|
||||||
CallResponse updateCall = callService.updateCallStatus(request, callId, status);
|
CallResponse updateCall = callService.updateCallStatus(request, callId, status);
|
||||||
return ResponseEntity.ok(new Response<>(updateCall, Status.SUCCESS, Translator.toLocale(GepafinConstant.UPDATE_CALL_STATUS_SUCCESS_MSG)));
|
return ResponseEntity.ok(new Response<>(updateCall, Status.SUCCESS, Translator.toLocale(GepafinConstant.UPDATE_CALL_STATUS_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<byte[]> downloadCallDocumentsAsZip(HttpServletRequest request, Long callId) {
|
public ResponseEntity<byte[]> downloadCallDocumentsAsZip(HttpServletRequest request, Long callId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "download Call documents " operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DOWNLOAD)
|
||||||
|
.actionContext(UserActionContextEnum.DOWNLOAD_CALL_DOCUMENT).build());
|
||||||
|
|
||||||
byte[] zipFile = callService.downloadCallDocumentsAsZip(request, callId);
|
byte[] zipFile = callService.downloadCallDocumentsAsZip(request, callId);
|
||||||
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
|||||||
@@ -3,11 +3,15 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.CommunicationRequestBean;
|
import net.gepafin.tendermanagement.model.request.CommunicationRequestBean;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.ApplicationAmendmentResponse;
|
import net.gepafin.tendermanagement.model.response.ApplicationAmendmentResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.CommunicationResponseBean;
|
import net.gepafin.tendermanagement.model.response.CommunicationResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.CommunicationService;
|
import net.gepafin.tendermanagement.service.CommunicationService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.CommunicationApi;
|
import net.gepafin.tendermanagement.web.rest.api.CommunicationApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -23,10 +27,16 @@ public class CommunicationController implements CommunicationApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
CommunicationService communicationService;
|
CommunicationService communicationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<CommunicationResponseBean>> addCommentToAmendmentRequest(HttpServletRequest request, CommunicationRequestBean communicationRequestBean,
|
public ResponseEntity<Response<CommunicationResponseBean>> addCommentToAmendmentRequest(HttpServletRequest request, CommunicationRequestBean communicationRequestBean,
|
||||||
Long amendmentId) {
|
Long amendmentId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Adding comment to amendment request" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.ADD_COMMENT_TO_AMENDMENT_REQUEST).build());
|
||||||
|
|
||||||
CommunicationResponseBean communicationResponseBean = communicationService.addCommentToAmendmentRequest(request,communicationRequestBean, amendmentId);
|
CommunicationResponseBean communicationResponseBean = communicationService.addCommentToAmendmentRequest(request,communicationRequestBean, amendmentId);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(communicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMMUNICATION_ADDED_TO_AMENDMENT_REQUEST_SUCCESS)));
|
.body(new Response<>(communicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMMUNICATION_ADDED_TO_AMENDMENT_REQUEST_SUCCESS)));
|
||||||
@@ -34,6 +44,9 @@ public class CommunicationController implements CommunicationApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationAmendmentResponse>> getAmendmentComments(HttpServletRequest request,Long amendmentId) {
|
public ResponseEntity<Response<ApplicationAmendmentResponse>> getAmendmentComments(HttpServletRequest request,Long amendmentId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "getting comment of amendment" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_AMENDMENT_COMMENT).build());
|
||||||
|
|
||||||
ApplicationAmendmentResponse response = communicationService.getAmendmentComments(request,amendmentId);
|
ApplicationAmendmentResponse response = communicationService.getAmendmentComments(request,amendmentId);
|
||||||
return ResponseEntity.ok(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.AMENDMENT_FOUND_SUCCESS)));
|
return ResponseEntity.ok(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.AMENDMENT_FOUND_SUCCESS)));
|
||||||
}
|
}
|
||||||
@@ -41,6 +54,9 @@ public class CommunicationController implements CommunicationApi {
|
|||||||
public ResponseEntity<Response<CommunicationResponseBean>> updateCommunicationAmendment(HttpServletRequest request, CommunicationRequestBean communicationRequestBean,
|
public ResponseEntity<Response<CommunicationResponseBean>> updateCommunicationAmendment(HttpServletRequest request, CommunicationRequestBean communicationRequestBean,
|
||||||
Long amendmentId, Long commentId) {
|
Long amendmentId, Long commentId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "update communication comment of amendment request" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.UPDATE_COMMUNICATION_COMMENT).build());
|
||||||
|
|
||||||
CommunicationResponseBean communicationResponseBean = communicationService.updateAmendmentComment(request,communicationRequestBean, amendmentId, commentId);
|
CommunicationResponseBean communicationResponseBean = communicationService.updateAmendmentComment(request,communicationRequestBean, amendmentId, commentId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(communicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMMENT_UPDATED_SUCCESS_MSG)));
|
.body(new Response<>(communicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMMENT_UPDATED_SUCCESS_MSG)));
|
||||||
@@ -48,6 +64,9 @@ public class CommunicationController implements CommunicationApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<String>> deleteApplicationAmendmentComment(HttpServletRequest request, Long applicationAmendId, Long commentId) {
|
public ResponseEntity<Response<String>> deleteApplicationAmendmentComment(HttpServletRequest request, Long applicationAmendId, Long commentId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Delete communication comment of amendment request" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_COMMENT_FROM_AMENDMENT).build());
|
||||||
|
|
||||||
String communicationResponseBean = communicationService.deleteComment(request,applicationAmendId, commentId);
|
String communicationResponseBean = communicationService.deleteComment(request,applicationAmendId, commentId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(communicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMMENT_DELETED_SUCCESS_MSG)));
|
.body(new Response<>(communicationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMMENT_DELETED_SUCCESS_MSG)));
|
||||||
|
|||||||
@@ -4,6 +4,10 @@ import java.io.ByteArrayOutputStream;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -36,10 +40,17 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CompanyService companyService;
|
private CompanyService companyService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<CompanyResponse>> createCompany(HttpServletRequest request,
|
public ResponseEntity<Response<CompanyResponse>> createCompany(HttpServletRequest request,
|
||||||
CompanyRequest companyRequest) {
|
CompanyRequest companyRequest) {
|
||||||
log.info("Create company with - Request Body: {}", companyRequest);
|
log.info("Create company with - Request Body: {}", companyRequest);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for "Creating company" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.CREATE_COMPANY).build());
|
||||||
|
|
||||||
CompanyResponse data = companyService.createCompany(request, companyRequest);
|
CompanyResponse data = companyService.createCompany(request, companyRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMPANY_CREATED_SUCCESS_MSG)));
|
.body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMPANY_CREATED_SUCCESS_MSG)));
|
||||||
@@ -49,6 +60,10 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
public ResponseEntity<Response<CompanyResponse>> updateCompany(HttpServletRequest request, Long companyId,
|
public ResponseEntity<Response<CompanyResponse>> updateCompany(HttpServletRequest request, Long companyId,
|
||||||
CompanyRequest companyRequest) {
|
CompanyRequest companyRequest) {
|
||||||
log.info("Update company with - Request Body: {}", companyRequest);
|
log.info("Update company with - Request Body: {}", companyRequest);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "update company" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.UPDATE_COMPANY).build());
|
||||||
|
|
||||||
CompanyResponse data = companyService.updateCompany(request, companyId, companyRequest);
|
CompanyResponse data = companyService.updateCompany(request, companyId, companyRequest);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -59,15 +74,22 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
public ResponseEntity<Response<CompanyResponse>> getCompany(HttpServletRequest request, Long companyId) {
|
public ResponseEntity<Response<CompanyResponse>> getCompany(HttpServletRequest request, Long companyId) {
|
||||||
|
|
||||||
log.info("Get company with id: {}", companyId);
|
log.info("Get company with id: {}", companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "get company" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_COMPANY).build());
|
||||||
|
|
||||||
CompanyResponse data = companyService.getCompany(request, companyId);
|
CompanyResponse data = companyService.getCompany(request, companyId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMPANY_GET_SUCCESS_MSG)));
|
||||||
.body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMPANY_GET_SUCCESS_MSG)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteCompany(HttpServletRequest request, Long companyId) {
|
public ResponseEntity<Response<Void>> deleteCompany(HttpServletRequest request, Long companyId) {
|
||||||
log.info("Delete company with id: {}", companyId);
|
log.info("Delete company with id: {}", companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "delete company" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_COMPANY).build());
|
||||||
|
|
||||||
companyService.deleteCompany(request, companyId);
|
companyService.deleteCompany(request, companyId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -78,6 +100,10 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
public ResponseEntity<Response<List<CompanyResponse>>> getCompanyByUserId(HttpServletRequest request, Long userId) {
|
public ResponseEntity<Response<List<CompanyResponse>>> getCompanyByUserId(HttpServletRequest request, Long userId) {
|
||||||
|
|
||||||
log.info("Get company with userId: {}", userId);
|
log.info("Get company with userId: {}", userId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get company by user id" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_COMPANY_BY_USER).build());
|
||||||
|
|
||||||
List<CompanyResponse> data = companyService.getCompanyByUserId(request, userId);
|
List<CompanyResponse> data = companyService.getCompanyByUserId(request, userId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -87,6 +113,10 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Map<String,Object>>> checkVatNumber(HttpServletRequest request, String vatNumber) {
|
public ResponseEntity<Response<Map<String,Object>>> checkVatNumber(HttpServletRequest request, String vatNumber) {
|
||||||
log.info("check VatNumber with: {}", vatNumber);
|
log.info("check VatNumber with: {}", vatNumber);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Check vat number" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.CHECK_COMPANY_VAT_NUMBER).build());
|
||||||
|
|
||||||
Map<String,Object> data = companyService.checkVatNumber(request, vatNumber);
|
Map<String,Object> data = companyService.checkVatNumber(request, vatNumber);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.CHECK_VATNUMBER_SUCCESS_MSG)));
|
.body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.CHECK_VATNUMBER_SUCCESS_MSG)));
|
||||||
@@ -95,6 +125,10 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<byte[]> downloadCompanyDelegation(HttpServletRequest request, Long companyId, CompanyDelegationRequest companyDelegationRequest) {
|
public ResponseEntity<byte[]> downloadCompanyDelegation(HttpServletRequest request, Long companyId, CompanyDelegationRequest companyDelegationRequest) {
|
||||||
log.info("download company delegation with companyId: {}", companyId);
|
log.info("download company delegation with companyId: {}", companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Download company delegation" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DOWNLOAD).actionContext(UserActionContextEnum.DOWNLOAD_COMPANY_DELEGATION_TEMPLATE).build());
|
||||||
|
|
||||||
ByteArrayOutputStream data = companyService.downloadCompanyDelegation(request, companyId, companyDelegationRequest);
|
ByteArrayOutputStream data = companyService.downloadCompanyDelegation(request, companyId, companyDelegationRequest);
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
|
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
|
||||||
@@ -107,6 +141,10 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
public ResponseEntity<Response<CompanyDelegationResponse>> uploadCompanyDelegation(HttpServletRequest request, Long companyId,
|
public ResponseEntity<Response<CompanyDelegationResponse>> uploadCompanyDelegation(HttpServletRequest request, Long companyId,
|
||||||
MultipartFile file) {
|
MultipartFile file) {
|
||||||
log.info("upload company delegation with companyId: {}", companyId);
|
log.info("upload company delegation with companyId: {}", companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Uploading company delegation document" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPLOAD).actionContext(UserActionContextEnum.UPLOAD_COMPANY_DELEGATION).build());
|
||||||
|
|
||||||
CompanyDelegationResponse companyDelegationResponse = companyService.uploadCompanyDelegation(request, companyId, file);
|
CompanyDelegationResponse companyDelegationResponse = companyService.uploadCompanyDelegation(request, companyId, file);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(companyDelegationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELEGATION_FILE_UPLOAD_SUCCESS)));
|
.body(new Response<>(companyDelegationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELEGATION_FILE_UPLOAD_SUCCESS)));
|
||||||
@@ -116,21 +154,33 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
public ResponseEntity<Response<CompanyDelegationResponse>> getCompanyDelegation(HttpServletRequest request,
|
public ResponseEntity<Response<CompanyDelegationResponse>> getCompanyDelegation(HttpServletRequest request,
|
||||||
Long companyId) {
|
Long companyId) {
|
||||||
log.info("get company delegation with companyId: {}", companyId);
|
log.info("get company delegation with companyId: {}", companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get company delegation" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_COMPANY_DELEGATION).build());
|
||||||
|
|
||||||
CompanyDelegationResponse companyDelegationResponse = companyService.getCompanyDelegation(request, companyId);
|
CompanyDelegationResponse companyDelegationResponse = companyService.getCompanyDelegation(request, companyId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(companyDelegationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELEGATION_FETCH_SUCCESS)));
|
.body(new Response<>(companyDelegationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELEGATION_FETCH_SUCCESS)));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteCompanyDelegation(HttpServletRequest request,
|
public ResponseEntity<Response<Void>> deleteCompanyDelegation(HttpServletRequest request, Long companyId) {
|
||||||
Long companyId) {
|
|
||||||
log.info("delete company delegation with companyId: {}", companyId);
|
log.info("delete company delegation with companyId: {}", companyId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "delete company delegation" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_COMPANY_DELEGATION).build());
|
||||||
|
|
||||||
companyService.deleteCompanyDelegation(request, companyId);
|
companyService.deleteCompanyDelegation(request, companyId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELEGATION_DELETE_SUCCESS)));
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DELEGATION_DELETE_SUCCESS)));
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> removeCompanyFromList(HttpServletRequest request, Long companyId) {
|
public ResponseEntity<Response<Void>> removeCompanyFromList(HttpServletRequest request, Long companyId) {
|
||||||
log.info("Api to remove a company from user's list");
|
log.info("Api to remove a company from user's list");
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Remove company from user list" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.REMOVE_COMPANY_FROM_USER).build());
|
||||||
|
|
||||||
companyService.removeCompanyFromList(request, companyId);
|
companyService.removeCompanyFromList(request, companyId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
|
|||||||
@@ -3,10 +3,14 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.BeneficiaryWidgetResponseBean;
|
import net.gepafin.tendermanagement.model.response.BeneficiaryWidgetResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.SuperAdminWidgetResponseBean;
|
import net.gepafin.tendermanagement.model.response.SuperAdminWidgetResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.DashboardService;
|
import net.gepafin.tendermanagement.service.DashboardService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.DashboardApi;
|
import net.gepafin.tendermanagement.web.rest.api.DashboardApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -22,14 +26,25 @@ public class DashboardApiController implements DashboardApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DashboardService dashboardService;
|
private DashboardService dashboardService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<SuperAdminWidgetResponseBean>> getDashboardWidgetForSuperAdmin(HttpServletRequest request) {
|
public ResponseEntity<Response<SuperAdminWidgetResponseBean>> getDashboardWidgetForSuperAdmin(HttpServletRequest request) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get dashboard widget for super admin" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_DASHBOARD_WIDGET_FOR_SUPER_ADMIN).build());
|
||||||
|
|
||||||
SuperAdminWidgetResponseBean widgetResponseBean= dashboardService.getDashboardWidgetForSuperAdmin(request);
|
SuperAdminWidgetResponseBean widgetResponseBean= dashboardService.getDashboardWidgetForSuperAdmin(request);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY))); }
|
.body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY))); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<BeneficiaryWidgetResponseBean>> getDashboardWidgetForBeneficiary(HttpServletRequest request, Long companyId) {
|
public ResponseEntity<Response<BeneficiaryWidgetResponseBean>> getDashboardWidgetForBeneficiary(HttpServletRequest request, Long companyId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get dashboard widget for beneficiary" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_DASHBOARD_WIDGET_FOR_BENEFICIARY).build());
|
||||||
|
|
||||||
BeneficiaryWidgetResponseBean widgetResponseBean= dashboardService.getDashboardWidgetForBeneficiary(request, companyId);
|
BeneficiaryWidgetResponseBean widgetResponseBean= dashboardService.getDashboardWidgetForBeneficiary(request, companyId);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY)));
|
.body(new Response<>(widgetResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DASHBOARD_WIDGET_FETCHED_SUCCESSFULLY)));
|
||||||
|
|||||||
@@ -3,11 +3,16 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.dao.DocumentDao;
|
||||||
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.DocumentTypeEnum;
|
import net.gepafin.tendermanagement.enums.DocumentTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
|
import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.DocumentService;
|
import net.gepafin.tendermanagement.service.DocumentService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.DocumentApi;
|
import net.gepafin.tendermanagement.web.rest.api.DocumentApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
@@ -27,10 +32,21 @@ DocumentApiController implements DocumentApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DocumentService documentService;
|
private DocumentService documentService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DocumentDao documentDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<DocumentResponseBean>>> uploadFile(HttpServletRequest httpServletRequest, Long sourceId, DocumentSourceTypeEnum sourceType,
|
public ResponseEntity<Response<List<DocumentResponseBean>>> uploadFile(HttpServletRequest httpServletRequest, Long sourceId, DocumentSourceTypeEnum sourceType,
|
||||||
List<MultipartFile> files, DocumentTypeEnum fileType) {
|
List<MultipartFile> files, DocumentTypeEnum fileType) {
|
||||||
try {
|
try {
|
||||||
|
UserActionContextEnum userActionContext = documentDao.getUserActionContextEnum(sourceType, fileType);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "upload document for call or application" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(httpServletRequest).actionType(UserActionLogsEnum.UPLOAD).actionContext(userActionContext).build());
|
||||||
|
|
||||||
List<DocumentResponseBean> responseBeans = documentService.uploadFile(files, sourceId, sourceType, fileType);
|
List<DocumentResponseBean> responseBeans = documentService.uploadFile(files, sourceId, sourceType, fileType);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<List<DocumentResponseBean>>(responseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.FILES_UPLOADED_MSG)));
|
.body(new Response<List<DocumentResponseBean>>(responseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.FILES_UPLOADED_MSG)));
|
||||||
@@ -40,6 +56,10 @@ DocumentApiController implements DocumentApi {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteFile(HttpServletRequest httpServletRequest, Long documentId) {
|
public ResponseEntity<Response<Void>> deleteFile(HttpServletRequest httpServletRequest, Long documentId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "delete document" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(httpServletRequest).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_DOCUMENT).build());
|
||||||
|
|
||||||
documentService.deleteFile(documentId);
|
documentService.deleteFile(documentId);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<Void>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FILE_DELETED_SUCCESSFULLY_MSG)));
|
.body(new Response<Void>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FILE_DELETED_SUCCESSFULLY_MSG)));
|
||||||
@@ -47,6 +67,12 @@ DocumentApiController implements DocumentApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<DocumentResponseBean>> updateDocument(HttpServletRequest httpServletRequest, Long documentId, MultipartFile file, DocumentTypeEnum documentTypeEnum) {
|
public ResponseEntity<Response<DocumentResponseBean>> updateDocument(HttpServletRequest httpServletRequest, Long documentId, MultipartFile file, DocumentTypeEnum documentTypeEnum) {
|
||||||
|
|
||||||
|
UserActionContextEnum userActionContext = documentDao.getUserActionContextForUpdatingDocOrImage(documentTypeEnum);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "update document or image" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(httpServletRequest).actionType(UserActionLogsEnum.UPDATE).actionContext(userActionContext).build());
|
||||||
|
|
||||||
DocumentResponseBean responseBeans = documentService.updateDocument(httpServletRequest, documentId, file, documentTypeEnum);
|
DocumentResponseBean responseBeans = documentService.updateDocument(httpServletRequest, documentId, file, documentTypeEnum);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<DocumentResponseBean>(responseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_UPDATED_SUCCESSFULLY)));
|
.body(new Response<DocumentResponseBean>(responseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_UPDATED_SUCCESSFULLY)));
|
||||||
@@ -54,6 +80,10 @@ DocumentApiController implements DocumentApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<DocumentResponseBean>> getDocumentById(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<DocumentResponseBean>> getDocumentById(HttpServletRequest request, Long id) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get Document" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_DOCUMENT).build());
|
||||||
|
|
||||||
DocumentResponseBean documentResponseBean = documentService.getDocument(request, id);
|
DocumentResponseBean documentResponseBean = documentService.getDocument(request, id);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<DocumentResponseBean>(documentResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_FETCHED_SUCCESSFULLY)));
|
.body(new Response<DocumentResponseBean>(documentResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_FETCHED_SUCCESSFULLY)));
|
||||||
|
|||||||
@@ -2,10 +2,14 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
|
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.EvaluationCriteriaService;
|
import net.gepafin.tendermanagement.service.EvaluationCriteriaService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.EvaluationCriteriaApi;
|
import net.gepafin.tendermanagement.web.rest.api.EvaluationCriteriaApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -24,8 +28,15 @@ public class EvaluationCriteriaApiController implements EvaluationCriteriaApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EvaluationCriteriaService service;
|
private EvaluationCriteriaService service;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<EvaluationCriteriaResponseBean>> createEvaluationCriteria(HttpServletRequest request, EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
public ResponseEntity<Response<EvaluationCriteriaResponseBean>> createEvaluationCriteria(HttpServletRequest request, EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "create evaluation criteria" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.CREATE_EVALUATION_CRITERIA).build());
|
||||||
|
|
||||||
EvaluationCriteriaResponseBean responseBean = service.createEvaluationCriteria(request,evaluationCriteriaRequest);
|
EvaluationCriteriaResponseBean responseBean = service.createEvaluationCriteria(request,evaluationCriteriaRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(responseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_CREATED_SUCCESSFULLY)));
|
.body(new Response<>(responseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_CREATED_SUCCESSFULLY)));
|
||||||
@@ -33,6 +44,10 @@ public class EvaluationCriteriaApiController implements EvaluationCriteriaApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<EvaluationCriteriaResponseBean>> getEvaluationCriteriaById(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<EvaluationCriteriaResponseBean>> getEvaluationCriteriaById(HttpServletRequest request, Long id) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "get evaluation criteria" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_EVALUATION_CRITERIA).build());
|
||||||
|
|
||||||
EvaluationCriteriaResponseBean responseBean = service.getEvaluationCriteria(request,id);
|
EvaluationCriteriaResponseBean responseBean = service.getEvaluationCriteria(request,id);
|
||||||
if (responseBean != null) {
|
if (responseBean != null) {
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -46,6 +61,10 @@ public class EvaluationCriteriaApiController implements EvaluationCriteriaApi {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor=Exception.class)
|
||||||
public ResponseEntity<Response<EvaluationCriteriaResponseBean>> updateEvaluationCriteria(HttpServletRequest request, Long id, EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
public ResponseEntity<Response<EvaluationCriteriaResponseBean>> updateEvaluationCriteria(HttpServletRequest request, Long id, EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Update evaluation criteria" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.UPDATE_EVALUATION_CRITERIA).build());
|
||||||
|
|
||||||
EvaluationCriteriaResponseBean responseBean = service.updateEvaluationCriteria(request,id, evaluationCriteriaRequest);
|
EvaluationCriteriaResponseBean responseBean = service.updateEvaluationCriteria(request,id, evaluationCriteriaRequest);
|
||||||
if (responseBean != null) {
|
if (responseBean != null) {
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -58,6 +77,10 @@ public class EvaluationCriteriaApiController implements EvaluationCriteriaApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteEvaluationCriteria(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<Void>> deleteEvaluationCriteria(HttpServletRequest request, Long id) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "deleting evaluation criteria" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_EVALUATION_CRITERIA).build());
|
||||||
|
|
||||||
service.deleteEvaluationCriteria(request,id);
|
service.deleteEvaluationCriteria(request,id);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
|
|||||||
@@ -2,10 +2,14 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FaqReq;
|
import net.gepafin.tendermanagement.model.request.FaqReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.FaqService;
|
import net.gepafin.tendermanagement.service.FaqService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.FaqApi;
|
import net.gepafin.tendermanagement.web.rest.api.FaqApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -20,42 +24,54 @@ public class FaqApiController implements FaqApi {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FaqService faqService;
|
private FaqService faqService;
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FaqResponseBean>> createFaq(HttpServletRequest request, Long callId, Long companyId, FaqReq faqRequest) {
|
public ResponseEntity<Response<FaqResponseBean>> createFaq(HttpServletRequest request, Long callId, Long companyId, FaqReq faqRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create FAQ" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.CREATE_FAQ).build());
|
||||||
|
|
||||||
FaqResponseBean response = faqService.createFaq(request, callId, companyId, faqRequest);
|
FaqResponseBean response = faqService.createFaq(request, callId, companyId, faqRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED).body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_CREATED_SUCCESSFULLY)));
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_CREATED_SUCCESSFULLY)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FaqResponseBean>> getFaqById(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<FaqResponseBean>> getFaqById(HttpServletRequest request, Long id) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "get FAQ by id" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_FAQ).build());
|
||||||
|
|
||||||
FaqResponseBean response = faqService.getFaqById(request, id);
|
FaqResponseBean response = faqService.getFaqById(request, id);
|
||||||
if (response != null) {
|
if (response != null) {
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_FETCHED_SUCCESSFULLY)));
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_FETCHED_SUCCESSFULLY)));
|
|
||||||
} else {
|
} else {
|
||||||
return ResponseEntity.status(HttpStatus.NOT_FOUND)
|
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new Response<>(null, Status.NOT_FOUND, Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
||||||
.body(new Response<>(null, Status.NOT_FOUND, Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FaqResponseBean>> updateFaq(HttpServletRequest request, Long id, FaqReq faqRequest) {
|
public ResponseEntity<Response<FaqResponseBean>> updateFaq(HttpServletRequest request, Long id, FaqReq faqRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for "Updating FAQ details" operation. **/
|
||||||
|
loggingUtil.logUserAction(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.UPDATE_FAQ_DETAILS).build());
|
||||||
FaqResponseBean response = faqService.updateFaq(request, id, faqRequest);
|
FaqResponseBean response = faqService.updateFaq(request, id, faqRequest);
|
||||||
if (response != null) {
|
if (response != null) {
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_UPDATED_SUCCESSFULLY)));
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_UPDATED_SUCCESSFULLY)));
|
|
||||||
} else {
|
} else {
|
||||||
return ResponseEntity.status(HttpStatus.NOT_FOUND)
|
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new Response<>(null, Status.NOT_FOUND, Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
||||||
.body(new Response<>(null, Status.NOT_FOUND, Translator.toLocale(GepafinConstant.FAQ_NOT_FOUND)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteFaq(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<Void>> deleteFaq(HttpServletRequest request, Long id) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Delete FAQ" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_FAQ).build());
|
||||||
|
|
||||||
faqService.deleteFaq(request, id);
|
faqService.deleteFaq(request, id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_DELETED_SUCCESSFULLY)));
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FAQ_DELETED_SUCCESSFULLY)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,14 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FlowRequestBean;
|
import net.gepafin.tendermanagement.model.request.FlowRequestBean;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.FlowResponseBean;
|
import net.gepafin.tendermanagement.model.response.FlowResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.FlowService;
|
import net.gepafin.tendermanagement.service.FlowService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.FlowApi;
|
import net.gepafin.tendermanagement.web.rest.api.FlowApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -23,15 +27,28 @@ public class FlowApiController implements FlowApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FlowService flowService;
|
private FlowService flowService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FlowResponseBean>> createOrUpdateFlow(HttpServletRequest httpServletRequest, FlowRequestBean flowRequestBean, Long callId) {
|
public ResponseEntity<Response<FlowResponseBean>> createOrUpdateFlow(HttpServletRequest request, FlowRequestBean flowRequestBean, Long callId) {
|
||||||
FlowResponseBean flowResponseBean=flowService.createOrUpdateFlow(httpServletRequest,flowRequestBean,callId);
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create or update Flow" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT)
|
||||||
|
.actionContext(UserActionContextEnum.CREATE_UPDATE_FLOW).build());
|
||||||
|
|
||||||
|
FlowResponseBean flowResponseBean=flowService.createOrUpdateFlow(request,flowRequestBean,callId);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(flowResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FLOW_CREATED_SUCCESSFULLY)));
|
.body(new Response<>(flowResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FLOW_CREATED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FlowResponseBean>> getFlowByCallId(HttpServletRequest request, Long callId) {
|
public ResponseEntity<Response<FlowResponseBean>> getFlowByCallId(HttpServletRequest request, Long callId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create or update Flow" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_FLOW).build());
|
||||||
|
|
||||||
FlowResponseBean flowResponseBean=flowService.getFlowByCallId(request,callId);
|
FlowResponseBean flowResponseBean=flowService.getFlowByCallId(request,callId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(flowResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FLOW_FETCHED_SUCCESSFULLY)));
|
.body(new Response<>(flowResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FLOW_FETCHED_SUCCESSFULLY)));
|
||||||
|
|||||||
@@ -3,10 +3,14 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FormRequest;
|
import net.gepafin.tendermanagement.model.request.FormRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.FormService;
|
import net.gepafin.tendermanagement.service.FormService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.FormApi;
|
import net.gepafin.tendermanagement.web.rest.api.FormApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -24,8 +28,15 @@ public class FormApiController implements FormApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FormService formService;
|
private FormService formService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FormResponseBean>> createForm(HttpServletRequest request,Long callId, FormRequest formRequest) {
|
public ResponseEntity<Response<FormResponseBean>> createForm(HttpServletRequest request,Long callId, FormRequest formRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create form" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.CREATE_FORM).build());
|
||||||
|
|
||||||
FormResponseBean formResponseBean = formService.createForm(request,callId, formRequest);
|
FormResponseBean formResponseBean = formService.createForm(request,callId, formRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_CREATED_SUCCESSFULLY)));
|
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_CREATED_SUCCESSFULLY)));
|
||||||
@@ -33,6 +44,10 @@ public class FormApiController implements FormApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FormResponseBean>> updateForm(HttpServletRequest request, Long formId, FormRequest formRequest,Boolean forceDeleteFlow) {
|
public ResponseEntity<Response<FormResponseBean>> updateForm(HttpServletRequest request, Long formId, FormRequest formRequest,Boolean forceDeleteFlow) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Update form" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.UPDATE_FORM).build());
|
||||||
|
|
||||||
FormResponseBean formResponseBean = formService.updateForm(request, formId, formRequest,forceDeleteFlow);
|
FormResponseBean formResponseBean = formService.updateForm(request, formId, formRequest,forceDeleteFlow);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_UPDATED_SUCCESSFULLY)));
|
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_UPDATED_SUCCESSFULLY)));
|
||||||
@@ -40,6 +55,10 @@ public class FormApiController implements FormApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FormResponseBean>> getFormById(HttpServletRequest request, Long formId) {
|
public ResponseEntity<Response<FormResponseBean>> getFormById(HttpServletRequest request, Long formId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get form by id" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_FORM).build());
|
||||||
|
|
||||||
FormResponseBean formResponseBean=formService.getFormById(request,formId);
|
FormResponseBean formResponseBean=formService.getFormById(request,formId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FETCHED_SUCCESSFULLY)));
|
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FETCHED_SUCCESSFULLY)));
|
||||||
@@ -47,6 +66,10 @@ public class FormApiController implements FormApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteForm(HttpServletRequest request, Long formId) {
|
public ResponseEntity<Response<Void>> deleteForm(HttpServletRequest request, Long formId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "delete form" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_FORM).build());
|
||||||
|
|
||||||
formService.deleteForm(request,formId);
|
formService.deleteForm(request,formId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_DELETED_SUCCESSFULLY)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_DELETED_SUCCESSFULLY)));
|
||||||
@@ -54,6 +77,10 @@ public class FormApiController implements FormApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<FormResponseBean>>> getFormsByCallId(HttpServletRequest request, Long callId) {
|
public ResponseEntity<Response<List<FormResponseBean>>> getFormsByCallId(HttpServletRequest request, Long callId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get forms by call id" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_FORM).build());
|
||||||
|
|
||||||
List<FormResponseBean> formResponseBean=formService.getFormsByCallId(request,callId);
|
List<FormResponseBean> formResponseBean=formService.getFormsByCallId(request,callId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FETCHED_SUCCESSFULLY)));
|
.body(new Response<>(formResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FETCHED_SUCCESSFULLY)));
|
||||||
|
|||||||
@@ -3,10 +3,14 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.FormFieldRequest;
|
import net.gepafin.tendermanagement.model.request.FormFieldRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.FormFieldResponseBean;
|
import net.gepafin.tendermanagement.model.response.FormFieldResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.FormFieldService;
|
import net.gepafin.tendermanagement.service.FormFieldService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.FormFieldApi;
|
import net.gepafin.tendermanagement.web.rest.api.FormFieldApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -24,8 +28,16 @@ public class FormFieldApiController implements FormFieldApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FormFieldService formFieldService;
|
private FormFieldService formFieldService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FormFieldResponseBean>> createFormField(HttpServletRequest request, FormFieldRequest formFieldRequest) {
|
public ResponseEntity<Response<FormFieldResponseBean>> createFormField(HttpServletRequest request, FormFieldRequest formFieldRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create Form field" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT)
|
||||||
|
.actionContext(UserActionContextEnum.CREATE_FORM_FIELD).build());
|
||||||
|
|
||||||
FormFieldResponseBean formFieldResponseBean=formFieldService.createFormField(request,formFieldRequest);
|
FormFieldResponseBean formFieldResponseBean=formFieldService.createFormField(request,formFieldRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(formFieldResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_CREATED_SUCCESSFULLY)));
|
.body(new Response<>(formFieldResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_CREATED_SUCCESSFULLY)));
|
||||||
@@ -33,6 +45,11 @@ public class FormFieldApiController implements FormFieldApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FormFieldResponseBean>> updateFormField(HttpServletRequest request, Long formFieldId, FormFieldRequest formFieldRequest) {
|
public ResponseEntity<Response<FormFieldResponseBean>> updateFormField(HttpServletRequest request, Long formFieldId, FormFieldRequest formFieldRequest) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Update Form field" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.UPDATE_FORM_FIELD).build());
|
||||||
|
|
||||||
FormFieldResponseBean formFieldResponseBean=formFieldService.updateFormField(request,formFieldId,formFieldRequest);
|
FormFieldResponseBean formFieldResponseBean=formFieldService.updateFormField(request,formFieldId,formFieldRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(formFieldResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_UPDATED_SUCCESSFULLY)));
|
.body(new Response<>(formFieldResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_UPDATED_SUCCESSFULLY)));
|
||||||
@@ -40,6 +57,11 @@ public class FormFieldApiController implements FormFieldApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<FormFieldResponseBean>> getFormFieldById(HttpServletRequest request, Long formFieldId) {
|
public ResponseEntity<Response<FormFieldResponseBean>> getFormFieldById(HttpServletRequest request, Long formFieldId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get Form field" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_FORM_FIELD).build());
|
||||||
|
|
||||||
FormFieldResponseBean formFieldResponseBean=formFieldService.getFormFieldById(request,formFieldId);
|
FormFieldResponseBean formFieldResponseBean=formFieldService.getFormFieldById(request,formFieldId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(formFieldResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_FETCHED_SUCCESSFULLY)));
|
.body(new Response<>(formFieldResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_FETCHED_SUCCESSFULLY)));
|
||||||
@@ -47,6 +69,11 @@ public class FormFieldApiController implements FormFieldApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteForm(HttpServletRequest request, Long formFieldId) {
|
public ResponseEntity<Response<Void>> deleteForm(HttpServletRequest request, Long formFieldId) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get Form field" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE)
|
||||||
|
.actionContext(UserActionContextEnum.DELETE_FORM_FIELD).build());
|
||||||
|
|
||||||
formFieldService.deleteFormField(request,formFieldId);
|
formFieldService.deleteFormField(request,formFieldId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_DELETED_SUCCESSFULLY)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_DELETED_SUCCESSFULLY)));
|
||||||
@@ -54,6 +81,11 @@ public class FormFieldApiController implements FormFieldApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<FormFieldResponseBean>>> getAllFormField(HttpServletRequest request) {
|
public ResponseEntity<Response<List<FormFieldResponseBean>>> getAllFormField(HttpServletRequest request) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get all Form field" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
|
||||||
|
.actionContext(UserActionContextEnum.GET_FORM_FIELD).build());
|
||||||
|
|
||||||
List<FormFieldResponseBean> formFieldResponseBeans=formFieldService.getAllFormField(request);
|
List<FormFieldResponseBean> formFieldResponseBeans=formFieldService.getAllFormField(request);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(formFieldResponseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_FETCHED_SUCCESSFULLY)));
|
.body(new Response<>(formFieldResponseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.FORM_FIELD_FETCHED_SUCCESSFULLY)));
|
||||||
|
|||||||
@@ -4,10 +4,14 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
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.HubReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.HubResponseBean;
|
import net.gepafin.tendermanagement.model.response.HubResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.HubService;
|
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.HubApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
|
|
||||||
@@ -24,9 +28,17 @@ public class HubApiController implements HubApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HubService hubService;
|
private HubService hubService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<HubResponseBean>> createHub(HttpServletRequest request, @Valid HubReq hubReq) {
|
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)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_CREATE_SUCCESS)));
|
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_CREATE_SUCCESS)));
|
||||||
}
|
}
|
||||||
@@ -34,7 +46,11 @@ public class HubApiController implements HubApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<HubResponseBean>> updateHub(HttpServletRequest request, Long hubId, @Valid HubReq hubReq) {
|
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)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_UPDATE_SUCCESS)));
|
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_UPDATE_SUCCESS)));
|
||||||
@@ -43,6 +59,10 @@ public class HubApiController implements HubApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<HubResponseBean>> getHubById(HttpServletRequest request, Long hubId) {
|
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);
|
HubResponseBean hubResponse = hubService.getHubById(hubId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -52,6 +72,10 @@ public class HubApiController implements HubApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<HubResponseBean>>> getAllHubs(HttpServletRequest request) {
|
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();
|
List<HubResponseBean> hubs = hubService.getAllHubs();
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(hubs, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_GET_ALL_SUCCESS)));
|
.body(new Response<>(hubs, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_GET_ALL_SUCCESS)));
|
||||||
@@ -60,12 +84,20 @@ public class HubApiController implements HubApi {
|
|||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteHub(HttpServletRequest request, Long hubId) {
|
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)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_DELETE_SUCCESS)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_DELETE_SUCCESS)));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<HubResponseBean>> getHubByUuid(HttpServletRequest request, String uuid) {
|
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);
|
HubResponseBean hubResponse = hubService.getHubByHubUuid(uuid);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_GET_SUCCESS)));
|
.body(new Response<>(hubResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.HUB_GET_SUCCESS)));
|
||||||
|
|||||||
@@ -5,11 +5,15 @@ import net.gepafin.tendermanagement.config.Translator;
|
|||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.LoginAttemptEntity;
|
import net.gepafin.tendermanagement.entities.LoginAttemptEntity;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.LoginAttemptReq;
|
import net.gepafin.tendermanagement.model.request.LoginAttemptReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.LoginAttemptPageableResponseBean;
|
import net.gepafin.tendermanagement.model.response.LoginAttemptPageableResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.LoginAttemptService;
|
import net.gepafin.tendermanagement.service.LoginAttemptService;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.LoginAttemptApi;
|
import net.gepafin.tendermanagement.web.rest.api.LoginAttemptApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
@@ -38,8 +42,15 @@ public class LoginAttemptApiController implements LoginAttemptApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<LoginAttemptPageableResponseBean<List<LoginAttemptEntity>>> getLoginAttemptsList(HttpServletRequest request, Integer pageNo, Integer pageLimit) {
|
public ResponseEntity<LoginAttemptPageableResponseBean<List<LoginAttemptEntity>>> getLoginAttemptsList(HttpServletRequest request, Integer pageNo, Integer pageLimit) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get login attempt list" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_LOGIN_ATTEMPT_LIST).build());
|
||||||
|
|
||||||
LoginAttemptPageableResponseBean<List<LoginAttemptEntity>> response = loginAttemptService.getLoginAttemptsList(request, pageNo, pageLimit);
|
LoginAttemptPageableResponseBean<List<LoginAttemptEntity>> response = loginAttemptService.getLoginAttemptsList(request, pageNo, pageLimit);
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(response);
|
return ResponseEntity.status(HttpStatus.OK).body(response);
|
||||||
}
|
}
|
||||||
@@ -50,6 +61,10 @@ public class LoginAttemptApiController implements LoginAttemptApi {
|
|||||||
String userIdString = (String) userInfo.get("userId");
|
String userIdString = (String) userInfo.get("userId");
|
||||||
UserEntity currentUser = userService.getUserEntityById(Long.parseLong(userIdString));
|
UserEntity currentUser = userService.getUserEntityById(Long.parseLong(userIdString));
|
||||||
loginAttemptReq.setUserName(currentUser.getEmail());
|
loginAttemptReq.setUserName(currentUser.getEmail());
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "add login attempt" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.ADD_LOGIN_ATTEMPT).build());
|
||||||
|
|
||||||
loginAttemptService.createLoginAttempt(loginAttemptReq, request);
|
loginAttemptService.createLoginAttempt(loginAttemptReq, request);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED).body(new Response<Void>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOGIN_ATTEMPTED_CREATED_SUCCESSFULLY)));
|
return ResponseEntity.status(HttpStatus.CREATED).body(new Response<Void>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOGIN_ATTEMPTED_CREATED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,14 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
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.LookUpDataRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
import net.gepafin.tendermanagement.model.response.LookUpDataResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.LookUpDataService;
|
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.LookUpDataApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -25,8 +29,16 @@ public class LookUpDataApiController implements LookUpDataApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private LookUpDataService lookUpDataService;
|
private LookUpDataService lookUpDataService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
LoggingUtil loggingUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<LookUpDataResponseBean>> createLookUpData(HttpServletRequest request, LookUpDataRequest lookUpDataReq) {
|
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);
|
LookUpDataResponseBean responseBean = lookUpDataService.createLookUpData(lookUpDataReq);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<LookUpDataResponseBean>(responseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOOKUP_DATA_CREATED_SUCCESSFULLY)));
|
.body(new Response<LookUpDataResponseBean>(responseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOOKUP_DATA_CREATED_SUCCESSFULLY)));
|
||||||
@@ -34,6 +46,11 @@ public class LookUpDataApiController implements LookUpDataApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<LookUpDataResponseBean>> getLookUpDataById(HttpServletRequest request, Long id) {
|
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);
|
LookUpDataResponseBean responseBean = lookUpDataService.getLookUpDataById(id);
|
||||||
if (responseBean != null) {
|
if (responseBean != null) {
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -46,6 +63,11 @@ public class LookUpDataApiController implements LookUpDataApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<LookUpDataResponseBean>> updateLookUpData(HttpServletRequest request, Long id, LookUpDataRequest lookUpDataReq) {
|
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);
|
LookUpDataResponseBean responseBean = lookUpDataService.updateLookUpData(id, lookUpDataReq);
|
||||||
if (responseBean != null) {
|
if (responseBean != null) {
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
@@ -58,12 +80,21 @@ public class LookUpDataApiController implements LookUpDataApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteLookUpData(HttpServletRequest request, Long id) {
|
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);
|
lookUpDataService.deleteLookUpData(id);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOOKUP_DATA_DELETED_SUCCESSFULLY)));
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOOKUP_DATA_DELETED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<LookUpDataResponseBean>>> getLookUpDataByType(HttpServletRequest request, List<LookUpDataTypeEnum> type) {
|
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);
|
List<LookUpDataResponseBean> responseBean = lookUpDataService.getLookUpDataByType(type);
|
||||||
if (responseBean != null) {
|
if (responseBean != null) {
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
|
|||||||
@@ -4,7 +4,11 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
|
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserActionEntity;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.enums.UserStatusEnum;
|
import net.gepafin.tendermanagement.enums.UserStatusEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.*;
|
import net.gepafin.tendermanagement.model.request.*;
|
||||||
import net.gepafin.tendermanagement.model.response.UserSamlResponse;
|
import net.gepafin.tendermanagement.model.response.UserSamlResponse;
|
||||||
@@ -12,6 +16,7 @@ import net.gepafin.tendermanagement.model.response.UserResponseBean;
|
|||||||
import net.gepafin.tendermanagement.model.util.JWTToken;
|
import net.gepafin.tendermanagement.model.util.JWTToken;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.UserApi;
|
import net.gepafin.tendermanagement.web.rest.api.UserApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -35,12 +40,27 @@ public class UserApiController implements UserApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LoggingUtil loggingUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TokenProvider tokenProvider;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<JWTToken>> createUser(HttpServletRequest request, String tempToken, @RequestBody UserReq userReq) {
|
public ResponseEntity<Response<JWTToken>> createUser(HttpServletRequest request, String tempToken, @RequestBody UserReq userReq) {
|
||||||
log.info("Create User with - Request Body: {}", userReq);
|
log.info("Create User with - Request Body: {}", userReq);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Create User" operation, even tempToken and userToken is present or not**/
|
||||||
|
UserActionEntity userAction = loggingUtil.logUserActionWithoutToken(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.CREATE_USER).build());
|
||||||
|
|
||||||
JWTToken createdUser = userService.createUser(request, tempToken, userReq);
|
JWTToken createdUser = userService.createUser(request, tempToken, userReq);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
|
||||||
.body(new Response<>(createdUser, Status.SUCCESS, Translator.toLocale(GepafinConstant.USER_CREATED_SUCCESS_MSG)));
|
/** This code is responsible for updating the user action log with new data after token generation.**/
|
||||||
|
if (userAction != null) {
|
||||||
|
loggingUtil.updateUserActionWithTokenDetails(userAction.getId(), createdUser.getToken(), null );
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.status(HttpStatus.CREATED).body(new Response<>(createdUser, Status.SUCCESS, Translator.toLocale(GepafinConstant.USER_CREATED_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -48,34 +68,58 @@ public class UserApiController implements UserApi {
|
|||||||
@PathVariable("userId") Long userId,
|
@PathVariable("userId") Long userId,
|
||||||
@Valid @RequestBody UpdateUserReq userReq) {
|
@Valid @RequestBody UpdateUserReq userReq) {
|
||||||
log.info("Update User - User ID: {}, Request Body: {}", userId, userReq);
|
log.info("Update User - User ID: {}, Request Body: {}", userId, userReq);
|
||||||
|
|
||||||
|
/** This code is responsible for "Updating user details" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
|
||||||
|
.actionContext(UserActionContextEnum.UPDATE_USER_DETAILS).build());
|
||||||
|
|
||||||
UserResponseBean updatedUser = userService.updateUser(request, userId, userReq);
|
UserResponseBean updatedUser = userService.updateUser(request, userId, userReq);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(updatedUser, Status.SUCCESS, Translator.toLocale(GepafinConstant.USER_UPDATED_SUCCESS_MSG)));
|
.body(new Response<>(updatedUser, Status.SUCCESS, Translator.toLocale(GepafinConstant.USER_UPDATED_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<UserResponseBean>> getUserById(HttpServletRequest request,
|
public ResponseEntity<Response<UserResponseBean>> getUserById(HttpServletRequest request, @PathVariable("userId") Long userId) {
|
||||||
@PathVariable("userId") Long userId) {
|
|
||||||
log.info("Get User by ID - User ID: {}", userId);
|
log.info("Get User by ID - User ID: {}", userId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get user" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_USER).build());
|
||||||
|
|
||||||
UserResponseBean user = userService.getUserById(request, userId);
|
UserResponseBean user = userService.getUserById(request, userId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
|
||||||
.body(new Response<>(user, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_USER_SUCCESS_MSG)));
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(user, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_USER_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteUser(HttpServletRequest request,
|
public ResponseEntity<Response<Void>> deleteUser(HttpServletRequest request, @PathVariable("userId") Long userId) {
|
||||||
@PathVariable("userId") Long userId) {
|
|
||||||
log.info("Delete User - User ID: {}", userId);
|
log.info("Delete User - User ID: {}", userId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Delete user" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_USER).build());
|
||||||
|
|
||||||
userService.deleteUser(request, userId);
|
userService.deleteUser(request, userId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.USER_DELETED_SUCCESS_MSG)));
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.USER_DELETED_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<JWTToken>> login(HttpServletRequest request,
|
public ResponseEntity<Response<JWTToken>> login(HttpServletRequest request, @Valid @RequestBody LoginReq loginReq) {
|
||||||
@Valid @RequestBody LoginReq loginReq) {
|
|
||||||
log.info("User login attempt ");
|
log.info("User login attempt ");
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "LOGIN" operation. **/
|
||||||
|
UserActionEntity userAction = loggingUtil.logUserActionWithoutToken(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT).actionContext(UserActionContextEnum.USER_LOGIN).build());
|
||||||
|
|
||||||
JWTToken jwtToken = userService.login(loginReq, request);
|
JWTToken jwtToken = userService.login(loginReq, request);
|
||||||
|
|
||||||
|
/** This code is responsible for updating the action and version log with new data after token generation.**/
|
||||||
|
if (userAction != null) {
|
||||||
|
loggingUtil.updateUserActionWithTokenDetails(userAction.getId(), jwtToken.getToken(), null);
|
||||||
|
loggingUtil.updateVersionHistoriesWithTokenDetails(userAction.getId(), jwtToken.getToken());
|
||||||
|
}
|
||||||
return ResponseEntity.ok(new Response<>(jwtToken, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOGIN_SUCCESS_MSG)));
|
return ResponseEntity.ok(new Response<>(jwtToken, Status.SUCCESS, Translator.toLocale(GepafinConstant.LOGIN_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@@ -106,6 +150,10 @@ public class UserApiController implements UserApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> logoutUser(HttpServletRequest request, HttpServletResponse response) {
|
public ResponseEntity<Response<Void>> logoutUser(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Logout" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.LOGOUT).actionContext(UserActionContextEnum.LOGOUT_USER).build());
|
||||||
|
|
||||||
userService.logoutUser(request, response);
|
userService.logoutUser(request, response);
|
||||||
|
|
||||||
log.info("User has successfully logged");
|
log.info("User has successfully logged");
|
||||||
@@ -123,6 +171,10 @@ public class UserApiController implements UserApi {
|
|||||||
public ResponseEntity<Response<UserResponseBean>> getValidUser(HttpServletRequest request) {
|
public ResponseEntity<Response<UserResponseBean>> getValidUser(HttpServletRequest request) {
|
||||||
log.info("Get Valid User Detail");
|
log.info("Get Valid User Detail");
|
||||||
UserResponseBean user = userService.getValidUser(request);
|
UserResponseBean user = userService.getValidUser(request);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get valid user details." operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_VALID_USER_DETAILS).build());
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(user, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_USER_SUCCESS_MSG)));
|
.body(new Response<>(user, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_USER_SUCCESS_MSG)));
|
||||||
|
|
||||||
@@ -130,24 +182,50 @@ public class UserApiController implements UserApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<JWTToken>> validateExistingUserToken(HttpServletRequest request, String token) {
|
public ResponseEntity<Response<JWTToken>> validateExistingUserToken(HttpServletRequest request, String token) {
|
||||||
|
|
||||||
log.info("User login attempt via spid token");
|
log.info("User login attempt via spid token");
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Validating existing user from spid token" operation. **/
|
||||||
|
UserActionEntity userAction = loggingUtil.logUserActionWithoutToken(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.VALIDATE_EXISTING_USER_WITH_SPID_TOKEN)
|
||||||
|
.build());
|
||||||
|
|
||||||
JWTToken data = userService.validateExistingUserToken(request, token);
|
JWTToken data = userService.validateExistingUserToken(request, token);
|
||||||
return ResponseEntity.ok(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.TOKEN_VALIDATE_SUCCESS_MSE)));
|
|
||||||
|
/** This code is responsible for updating the action and version log with new data.**/
|
||||||
|
if (userAction != null) {
|
||||||
|
loggingUtil.updateUserActionWithTokenDetails(userAction.getId(), data.getToken(), data);
|
||||||
|
loggingUtil.updateVersionHistoriesWithTokenDetails(userAction.getId(), data.getToken());
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.TOKEN_VALIDATE_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<UserSamlResponse>> validateNewUserToken(HttpServletRequest request, String token) {
|
public ResponseEntity<Response<UserSamlResponse>> validateNewUserToken(HttpServletRequest request, String token) {
|
||||||
|
|
||||||
log.info("User validating spid token");
|
log.info("User validating spid token");
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Validating new user from spid token" operation. **/
|
||||||
|
loggingUtil.logUserActionWithoutToken(
|
||||||
|
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.VALIDATE_NEW_USER_WITH_SPID_TOKEN).build());
|
||||||
|
|
||||||
UserSamlResponse data = userService.validateNewUserToken(request, token);
|
UserSamlResponse data = userService.validateNewUserToken(request, token);
|
||||||
return ResponseEntity.ok(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.TOKEN_VALIDATE_SUCCESS_MSE)));
|
|
||||||
|
return ResponseEntity.ok(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.TOKEN_VALIDATE_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<List<UserResponseBean>>> getAllUsers(HttpServletRequest request,
|
public ResponseEntity<Response<List<UserResponseBean>>> getAllUsers(HttpServletRequest request, Long roleId) {
|
||||||
Long roleId) {
|
|
||||||
log.info("Get all Users by Role ID - Role ID: {}", roleId);
|
log.info("Get all Users by Role ID - Role ID: {}", roleId);
|
||||||
|
|
||||||
|
/** This code is responsible for creating user action logs for the "Get all users by role" operation. **/
|
||||||
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_ALL_USERS_BY_ROLE).build());
|
||||||
|
|
||||||
List<UserResponseBean> users = userService.getAllUsers(request, roleId);
|
List<UserResponseBean> users = userService.getAllUsers(request, roleId);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
|
||||||
.body(new Response<>(users, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_USERS_SUCCESS_MSG)));
|
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(users, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_USERS_SUCCESS_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1716,10 +1716,25 @@
|
|||||||
<sqlFile dbms="postgresql"
|
<sqlFile dbms="postgresql"
|
||||||
path="db/dump/update_system_email_template_for_notification_mail_04_11_2024_1.sql"/>
|
path="db/dump/update_system_email_template_for_notification_mail_04_11_2024_1.sql"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="05-11-2024_4" author="Harish Bagora">
|
<changeSet id="05-11-2024_4" author="Harish Bagora">
|
||||||
<sqlFile dbms="postgresql"
|
<sqlFile dbms="postgresql"
|
||||||
path="db/dump/update_system_email_template_for_notification_mail_05_11_2024_4.sql"/>
|
path="db/dump/update_system_email_template_for_notification_mail_05_11_2024_4.sql"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="13-11-2024_1" author="Rajesh Khore">
|
||||||
|
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_email"/>
|
||||||
|
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_notification"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="13-11-2024_2" author="Harish Bagora">
|
||||||
|
<addColumn tableName="beneficiary_preferred_call">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="15-11-2024_1" author="Nisha Kashyap">
|
<changeSet id="15-11-2024_1" author="Nisha Kashyap">
|
||||||
<createTable tableName="email_log">
|
<createTable tableName="email_log">
|
||||||
<column autoIncrement="true" name="id" type="INTEGER">
|
<column autoIncrement="true" name="id" type="INTEGER">
|
||||||
@@ -1759,19 +1774,6 @@
|
|||||||
path="db/dump/updated_hub_data_for_email_service_config_15-11-2024.sql"/>
|
path="db/dump/updated_hub_data_for_email_service_config_15-11-2024.sql"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="13-11-2024_1" author="Rajesh Khore">
|
|
||||||
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_email"/>
|
|
||||||
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_notification"/>
|
|
||||||
</changeSet>
|
|
||||||
|
|
||||||
<changeSet id="13-11-2024_2" author="Harish Bagora">
|
|
||||||
<addColumn tableName="beneficiary_preferred_call">
|
|
||||||
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
|
||||||
<constraints nullable="false"/>
|
|
||||||
</column>
|
|
||||||
</addColumn>
|
|
||||||
</changeSet>
|
|
||||||
|
|
||||||
<changeSet id="18-11-2024_1" author="Nisha Kashyap">
|
<changeSet id="18-11-2024_1" author="Nisha Kashyap">
|
||||||
<addColumn tableName="email_log">
|
<addColumn tableName="email_log">
|
||||||
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false"></column>
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false"></column>
|
||||||
@@ -1785,6 +1787,59 @@
|
|||||||
</dropColumn>
|
</dropColumn>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="20-11-2024_1" author="Piyush">
|
||||||
|
<createTable tableName="user_action">
|
||||||
|
<column autoIncrement="true" name="id" type="INTEGER">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="pk_user_action"/>
|
||||||
|
</column>
|
||||||
|
<column name="user_id" type="INTEGER"/>
|
||||||
|
<column name="action_type" type="TEXT"/>
|
||||||
|
<column name="request_body" type="TEXT"/>
|
||||||
|
<column name="login_attempt_id" type="INTEGER"/>
|
||||||
|
<column name="ip_address" type="TEXT"/>
|
||||||
|
<column name="action_context" type="TEXT"/>
|
||||||
|
<column name="method_type" type="TEXT"/>
|
||||||
|
<column name="hub_id" type="INTEGER"/>
|
||||||
|
<column name="url" type="TEXT"/>
|
||||||
|
<column name="response" type="TEXT"/>
|
||||||
|
<column name="created_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="20-11-2024_2" author="Piyush">
|
||||||
|
<createTable tableName="version_history">
|
||||||
|
<column autoIncrement="true" name="id" type="INTEGER">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="pk_version_history"/>
|
||||||
|
</column>
|
||||||
|
<column name="old_data" type="LONGTEXT"/>
|
||||||
|
<column name="new_data" type="LONGTEXT"/>
|
||||||
|
<column name="table_name" type="TEXT"/>
|
||||||
|
<column name="action_type" type="TEXT"/>
|
||||||
|
<column name="record_id" type="INTEGER"/>
|
||||||
|
<column name="user_id" type="INTEGER"/>
|
||||||
|
<column name="user_action_id" type="INTEGER">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="created_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
</createTable>
|
||||||
|
|
||||||
|
<addForeignKeyConstraint baseTableName="version_history"
|
||||||
|
baseColumnNames="user_action_id"
|
||||||
|
referencedTableName="user_action"
|
||||||
|
referencedColumnNames="id"
|
||||||
|
onDelete="CASCADE"
|
||||||
|
constraintName="fk_version_history_user_action"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="20-11-2024_3" author="Piyush">
|
||||||
|
<addColumn tableName="login_attempt">
|
||||||
|
<column name="created_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="21-11-2024_1" author="Rajesh Khore">
|
<changeSet id="21-11-2024_1" author="Rajesh Khore">
|
||||||
<addColumn tableName="communication">
|
<addColumn tableName="communication">
|
||||||
<column name="sender_user_id" type="INTEGER"></column>
|
<column name="sender_user_id" type="INTEGER"></column>
|
||||||
@@ -1798,9 +1853,27 @@
|
|||||||
<where>role_type = 'ROLE_PRE_INSTRUCTOR'</where>
|
<where>role_type = 'ROLE_PRE_INSTRUCTOR'</where>
|
||||||
</update>
|
</update>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="22-11-2024_1" author="Rajesh Khore">
|
<changeSet id="22-11-2024_1" author="Rajesh Khore">
|
||||||
<addColumn tableName="application_evaluation">
|
<addColumn tableName="application_evaluation">
|
||||||
<column name="MOTIVATION" type="TEXT"></column>
|
<column name="MOTIVATION" type="TEXT"></column>
|
||||||
</addColumn>
|
</addColumn>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="22-11-2024_2" author="Piyush">
|
||||||
|
<addColumn tableName="user_action">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="22-11-2024_3" author="Piyush">
|
||||||
|
<addColumn tableName="version_history">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
Reference in New Issue
Block a user