Merge branch 'develop' of https://github.com/Kitzanos/GEPAFIN-BE into user-management

This commit is contained in:
rajesh
2024-08-22 17:25:03 +05:30
9 changed files with 188 additions and 8 deletions

View File

@@ -121,7 +121,7 @@ public class CallDao {
validateDocumentEntity(documentReq.getId(),documentReq.getFileName());
DocumentEntity documentEntity = documentRepository.findById(documentReq.getId());
if(documentEntity==null){
throw new ResourceNotFoundException(Status.VALIDATION_ERROR,GepafinConstant.DOCUMENT_NOT_FOUND);
throw new ResourceNotFoundException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND));
}
documentEntity.setFileName(documentReq.getFileName());
documentEntity.setFilePath(documentReq.getUrl());

View File

@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody;
public interface CallApi {
@Operation(summary = "API to create call",
@Operation(summary = "Api to create call",
responses = {
@ApiResponse(responseCode = "200", description = "OK"),
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {

View File

@@ -0,0 +1,28 @@
package net.gepafin.tendermanagement.web.rest.api.errors;
import org.zalando.problem.AbstractThrowableProblem;
import org.zalando.problem.Status;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
public class BadRequestAlertException extends AbstractThrowableProblem {
private static final long serialVersionUID = 1L;
public BadRequestAlertException(String defaultMessage, String entityName, String errorKey) {
this(ErrorConstants.DEFAULT_TYPE, defaultMessage, entityName, errorKey);
}
public BadRequestAlertException(URI type, String defaultMessage, String entityName, String errorKey) {
super(type, defaultMessage, Status.BAD_REQUEST, null, null, null, getAlertParameters(entityName, errorKey));
}
private static Map<String, Object> getAlertParameters(String entityName, String errorKey) {
Map<String, Object> parameters = new HashMap<>();
parameters.put("message", "error." + errorKey);
parameters.put("params", entityName);
return parameters;
}
}

View File

@@ -0,0 +1,23 @@
package net.gepafin.tendermanagement.web.rest.api.errors;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value = HttpStatus.FORBIDDEN)
public class ForbiddenAccessException extends RuntimeException {
/**
*
*/
private static final long serialVersionUID = 1L;
private final Status status;
public ForbiddenAccessException(Status status, String message) {
super(message);
this.status = status;
}
public Status getStatus() {
return status;
}
}

View File

@@ -1,18 +1,37 @@
package net.gepafin.tendermanagement.web.rest.api.errors;
import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.model.util.Response;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.AuthenticationException;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;
@ControllerAdvice
public class GlobalExceptionHandler {
public final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ExceptionHandler(CustomValidationException.class)
public ResponseEntity<Response<Void>> handleCustomValidationException(CustomValidationException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST)
.body(new Response<>(null, ex.getStatus(), ex.getMessage()));
@ResponseBody
public Response<Object> handleCustomValidationException(final CustomValidationException ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
return new Response<>(null, ex.getStatus(), ex.getMessage());
}
@ExceptionHandler(ResourceNotFoundException.class)
@@ -20,4 +39,77 @@ public class GlobalExceptionHandler {
return ResponseEntity.status(HttpStatus.NOT_FOUND)
.body(new Response<>(null, ex.getStatus(), ex.getMessage()));
}
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
@ResponseBody
public Response<Object> handleThrowable(final Throwable ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
return new Response<>(null, Status.EXCEPTION_ERROR, Translator.toLocale("common_message"));
}
@ResponseStatus(value = HttpStatus.UNAUTHORIZED)
@ExceptionHandler(AuthenticationException.class)
@ResponseBody
public Response<Object> handleInvalidTokenException(final Throwable ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
return new Response<>(ex.getMessage(), Status.UNAUTHORIZED, Translator.toLocale("invalid_signature"));
}
@ResponseStatus(value = HttpStatus.UNAUTHORIZED)
@ExceptionHandler(UnauthorizedAccessException.class)
@ResponseBody
public Response<Object> unauthorizedAccessException(final Throwable ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
return new Response<>(null, Status.UNAUTHORIZED, ex.getMessage());
}
@ResponseStatus(value = HttpStatus.FORBIDDEN)
@ExceptionHandler(ForbiddenAccessException.class)
@ResponseBody
public Response<Object> forbiddenAccessException(final Throwable ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
return new Response<>(null, Status.FORBIDDEN, ex.getMessage());
}
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public Response<Object> handleValiationException(final MethodArgumentNotValidException ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
final List<String> errors = new ArrayList<String>();
for (final FieldError error : ex.getBindingResult().getFieldErrors()) {
errors.add(error.getField() + ": " + error.getDefaultMessage());
}
for (final ObjectError error : ex.getBindingResult().getGlobalErrors()) {
errors.add(error.getObjectName() + ": " + error.getDefaultMessage());
}
return new Response<>(errors, Status.VALIDATION_ERROR, Translator.toLocale("req_validation_er"));
}
@ResponseStatus(value = HttpStatus.UNAUTHORIZED)
@ExceptionHandler(BadCredentialsException.class)
@ResponseBody
public Response<Object> handleUnAuthorizedException(final Throwable ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
return new Response<>(null, Status.VALIDATION_ERROR, Translator.toLocale("invalid_login"));
}
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ExceptionHandler(BadRequestAlertException.class)
@ResponseBody
public Response<Object> badRequestAlertException(final Throwable ex) {
log.error(ex.getMessage());
log.error(ex.getLocalizedMessage(), ex);
return new Response<>(null, Status.EXCEPTION_ERROR, ex.getMessage());
}
}

View File

@@ -0,0 +1,23 @@
package net.gepafin.tendermanagement.web.rest.api.errors;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value = HttpStatus.UNAUTHORIZED)
public class UnauthorizedAccessException extends RuntimeException {
/**
*
*/
private static final long serialVersionUID = 1L;
private final Status status;
public UnauthorizedAccessException(Status status, String message) {
super(message);
this.status = status;
}
public Status getStatus() {
return status;
}
}