All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.careydevelopment.util.api.response.ResponseEntityUtil Maven / Gradle / Ivy

The newest version!
package us.careydevelopment.util.api.response;

import java.util.List;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

import us.careydevelopment.util.api.model.IRestResponse;
import us.careydevelopment.util.api.model.ResponseStatus;
import us.careydevelopment.util.api.model.ResponseStatusCode;
import us.careydevelopment.util.api.model.RestResponse;
import us.careydevelopment.util.api.model.ValidationError;

public class ResponseEntityUtil {

    public static  ResponseEntity> createResponseEntity(IRestResponse response) {
        return ResponseEntity
                    .status(HttpStatus.valueOf(response.getHttpStatusCode()))
                    .body(response);
    }
    
    public static  ResponseEntity> createSuccessfulResponseEntity(String message, int httpStatusCode, T response) {
        ResponseStatus status = getSuccessResponseStatus(message);
        
        RestResponse fullResponse = new RestResponse<>();
        fullResponse.setResponseStatus(status);
        fullResponse.setHttpStatusCode(httpStatusCode);
        fullResponse.setResponse(response);
        
        return createResponseEntity(fullResponse);
    }

    public static ResponseEntity> createSuccessfulResponseEntity(String message, int httpStatusCode) {
        ResponseStatus status = getSuccessResponseStatus(message);
        
        RestResponse fullResponse = new RestResponse<>();
        fullResponse.setResponseStatus(status);
        fullResponse.setHttpStatusCode(httpStatusCode);
        
        return createResponseEntity(fullResponse);
    }
    
    public static ResponseEntity> createResponseEntityWithError(String message, int httpStatusCode) {
        ResponseStatus status = getErrorResponseStatus(message);
        
        RestResponse fullResponse = new RestResponse<>();
        fullResponse.setResponseStatus(status);
        fullResponse.setHttpStatusCode(httpStatusCode);
        
        return createResponseEntity(fullResponse);
    }

    public static ResponseEntity> createResponseEntityWithUnauthorized(String message) {
        ResponseStatus status = getUnauthorizedResponseStatus(message);
        
        RestResponse fullResponse = new RestResponse<>();
        fullResponse.setResponseStatus(status);
        fullResponse.setHttpStatusCode(HttpStatus.UNAUTHORIZED.value());
        
        return createResponseEntity(fullResponse);
    }
    
    public static ResponseEntity> createResponseEntityWithError(String message, HttpStatus httpStatus) {
        return createResponseEntityWithError(message, httpStatus.value());
    }
    
    public static ResponseEntity>> createResponseEntityWithValidationErrors(List errors) {
        RestResponse> fullResponse = new RestResponse<>();
        
        if (errors != null && errors.size() > 0) {
            ResponseStatus responseStatus = getErrorResponseStatus("Validation error");
            
            fullResponse.setResponse(errors);
            fullResponse.setResponseStatus(responseStatus);
            fullResponse.setHttpStatusCode(HttpStatus.BAD_REQUEST.value());            
        }
        
        return createResponseEntity(fullResponse);
    }
    
    private static ResponseStatus getUnauthorizedResponseStatus(String message) {
        return getResponseStatus(message, ResponseStatusCode.UNAUTHORIZED);
    }
    
    private static ResponseStatus getSuccessResponseStatus(String message) {
        return getResponseStatus(message, ResponseStatusCode.OK);
    }
    
    private static ResponseStatus getErrorResponseStatus(String message) {
        return getResponseStatus(message, ResponseStatusCode.ERROR);
    }
    
    private static ResponseStatus getResponseStatus(String message, ResponseStatusCode code) {
        ResponseStatus status = new ResponseStatus();
        status.setMessage(message);
        status.setStatusCode(code);
        
        return status;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy