Friday, May 15, 2015

Implement JSON Response Entity

public class ResponseJson {

    /**
     * A record is created successfully
     * @param msg
     * @return
     */
@ResponseBody
    public ResponseEntity<?> handleSuccess(String msg) {
        return successResponse(msg, HttpStatus.CREATED);
    }

    protected ResponseEntity<SuccessMessage> successResponse(String msg,
    HttpStatus status) {
        if (null != msg) {
            return response(new SuccessMessage(msg), status);
        } else {
            return response(null, status);
        }
    }

   
    /**
     *
     * @param msg
     * @return
     */
    @ResponseBody
    public ResponseEntity<?> handleNegative(String msg) {
        return negativeResponse(msg, HttpStatus.EXPECTATION_FAILED);
    }

    protected ResponseEntity<NegativeMessage> negativeResponse(String msg,
    HttpStatus status) {
        if (null != msg) {
            return response(new NegativeMessage(msg), status);
        } else {
            return response(null, status);
        }
    }

    /**
     * Authentication failure
     * @param msg
     * @return
     */
    @ResponseBody
    public ResponseEntity<?> handleUnAuth(String msg) {
        return unAuthResponse(msg, HttpStatus.UNAUTHORIZED);
    }
   
    protected ResponseEntity<NegativeMessage> unAuthResponse(String msg,
    HttpStatus status) {
        if (null != msg) {
            return response(new NegativeMessage(msg), status);
        } else {
            return response(null, status);
        }
    }

    /**
     * Json response
     * @param body
     * @param status
     * @return
     */
    protected <T> ResponseEntity<T> response(T body, HttpStatus status) {
        return new ResponseEntity<T>(body, new HttpHeaders(), status);
    }
}

No comments: