diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/BadRequestException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/BadRequestException.java index 858734d0d..9c305ec35 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/BadRequestException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/BadRequestException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when connection is returned 401 Bad Request. * @@ -12,6 +14,6 @@ package com.djrapitops.plan.api.exceptions.connection; public class BadRequestException extends WebException { public BadRequestException(String message) { - super(message); + super(message, ResponseCode.BAD_REQUEST); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ConnectionFailException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ConnectionFailException.java index 575fb3080..4ae13f4e5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ConnectionFailException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ConnectionFailException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when Connection fails to connect to an address. * @@ -12,10 +14,10 @@ package com.djrapitops.plan.api.exceptions.connection; public class ConnectionFailException extends WebException { public ConnectionFailException(String message, Throwable cause) { - super(message, cause); + super(message, cause, ResponseCode.CONNECTION_REFUSED); } public ConnectionFailException(Throwable cause) { - super(cause); + super(cause, ResponseCode.CONNECTION_REFUSED); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ForbiddenException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ForbiddenException.java index 1e06b5844..1331ca47e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ForbiddenException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/ForbiddenException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when Connection gets a 403 response. * @@ -11,6 +13,6 @@ package com.djrapitops.plan.api.exceptions.connection; */ public class ForbiddenException extends WebFailException { public ForbiddenException(String url) { - super("Forbidden: " + url); + super("Forbidden: " + url, ResponseCode.FORBIDDEN); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/GatewayException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/GatewayException.java index 0b15bbbb3..e3c85e48f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/GatewayException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/GatewayException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when InfoRequest can not connect to the other server. * @@ -12,14 +14,6 @@ package com.djrapitops.plan.api.exceptions.connection; public class GatewayException extends WebException { public GatewayException(String message) { - super(message); - } - - public GatewayException(String message, Throwable cause) { - super(message, cause); - } - - public GatewayException(Throwable cause) { - super(cause); + super(message, ResponseCode.GATEWAY_ERROR); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/InternalErrorException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/InternalErrorException.java index ddac58c62..963ea4a68 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/InternalErrorException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/InternalErrorException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when Connection returns 500. * @@ -11,10 +13,10 @@ package com.djrapitops.plan.api.exceptions.connection; */ public class InternalErrorException extends WebFailException { public InternalErrorException() { - super("Internal Error occurred on receiving server"); + super("Internal Error occurred on receiving server", ResponseCode.INTERNAL_ERROR); } public InternalErrorException(String message, Throwable cause) { - super(message, cause); + super(message, cause, ResponseCode.INTERNAL_ERROR); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/NotFoundException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/NotFoundException.java index 2c817ef8f..fe994a0d1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/NotFoundException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/NotFoundException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when Connection returns 404, when page is not found. * @@ -11,6 +13,6 @@ package com.djrapitops.plan.api.exceptions.connection; */ public class NotFoundException extends WebFailException { public NotFoundException(String message) { - super(message); + super(message, ResponseCode.NOT_FOUND); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/UnauthorizedServerException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/UnauthorizedServerException.java index 2e6db01b9..31edef1bb 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/UnauthorizedServerException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/UnauthorizedServerException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when Connection gets a 412 response due to ServerUUID not being in the database. * @@ -12,14 +14,14 @@ package com.djrapitops.plan.api.exceptions.connection; public class UnauthorizedServerException extends WebFailException { public UnauthorizedServerException(String message) { - super(message); + super(message, ResponseCode.PRECONDITION_FAILED); } public UnauthorizedServerException(String message, Throwable cause) { - super(message, cause); + super(message, cause, ResponseCode.PRECONDITION_FAILED); } public UnauthorizedServerException(Throwable cause) { - super(cause); + super(cause, ResponseCode.PRECONDITION_FAILED); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebException.java index 5b5866f89..5cd46f8ad 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Thrown when Connection POST-request fails, general Exception. * @@ -11,18 +13,47 @@ package com.djrapitops.plan.api.exceptions.connection; */ public class WebException extends Exception { + private final ResponseCode responseCode; + public WebException() { + responseCode = ResponseCode.NONE; } public WebException(String message) { super(message); + responseCode = ResponseCode.NONE; } public WebException(String message, Throwable cause) { super(message, cause); + responseCode = ResponseCode.NONE; } public WebException(Throwable cause) { super(cause); + responseCode = ResponseCode.NONE; + } + + public WebException(ResponseCode responseCode) { + this.responseCode = responseCode; + } + + public WebException(String message, ResponseCode responseCode) { + super(message); + this.responseCode = responseCode; + } + + public WebException(String message, Throwable cause, ResponseCode responseCode) { + super(message, cause); + this.responseCode = responseCode; + } + + public WebException(Throwable cause, ResponseCode responseCode) { + super(cause); + this.responseCode = responseCode; + } + + public ResponseCode getResponseCode() { + return responseCode; } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebFailException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebFailException.java index 4d1145e3e..46f310f32 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebFailException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/WebFailException.java @@ -4,6 +4,8 @@ */ package com.djrapitops.plan.api.exceptions.connection; +import com.djrapitops.plan.system.webserver.response.ResponseCode; + /** * Group of WebExceptions that can be considered a failed connection state on some occasions. * @@ -11,18 +13,19 @@ package com.djrapitops.plan.api.exceptions.connection; */ public class WebFailException extends WebException { - public WebFailException() { - } - - public WebFailException(String message) { - super(message); - } - public WebFailException(String message, Throwable cause) { super(message, cause); } - public WebFailException(Throwable cause) { - super(cause); + public WebFailException(String message, ResponseCode responseCode) { + super(message, responseCode); + } + + public WebFailException(String message, Throwable cause, ResponseCode responseCode) { + super(message, cause, responseCode); + } + + public WebFailException(Throwable cause, ResponseCode responseCode) { + super(cause, responseCode); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java index 9dd67b5fc..cc746dfd7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java @@ -4,7 +4,8 @@ */ package com.djrapitops.plan.system.info.connection; -import com.djrapitops.plan.api.exceptions.connection.*; +import com.djrapitops.plan.api.exceptions.connection.NotFoundException; +import com.djrapitops.plan.api.exceptions.connection.WebException; import com.djrapitops.plan.system.info.request.InfoRequest; import com.djrapitops.plan.system.webserver.Request; import com.djrapitops.plan.system.webserver.pages.PageHandler; @@ -54,22 +55,6 @@ public class InfoRequestPageHandler extends PageHandler { } private int getResponseCodeFor(WebException e) { - if (e instanceof BadRequestException) { - return 400; - } else if (e instanceof ForbiddenException) { - return 403; - } else if (e instanceof NotFoundException) { - return 404; - } else if (e instanceof UnauthorizedServerException) { - return 412; - } else if (e instanceof InternalErrorException) { - return 500; - } else if (e instanceof GatewayException) { - return 504; - } else if (e instanceof ConnectionFailException) { - return -1; - } else { - return 0; - } + return e.getResponseCode().getCode(); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/ResponseCode.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/ResponseCode.java new file mode 100644 index 000000000..ce5301a8f --- /dev/null +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/ResponseCode.java @@ -0,0 +1,29 @@ +package com.djrapitops.plan.system.webserver.response; + +/** + * Enum for HTTP response codes. + * + * @author Rsl1122 + */ +public enum ResponseCode { + NONE(0), + CONNECTION_REFUSED(-1), + SUCCESS(200), + BAD_REQUEST(400), + UNAUTHORIZED(401), + FORBIDDEN(403), + NOT_FOUND(404), + PRECONDITION_FAILED(412), + INTERNAL_ERROR(500), + GATEWAY_ERROR(504); + + private final int code; + + ResponseCode(int code) { + this.code = code; + } + + public int getCode() { + return code; + } +} \ No newline at end of file