Files
exercisie-ratpack/src/main/java/edu/allegro/exercise/ResultCodes.java
T
Mariusz Pacek e8c68abcad Added:
* handling connection timeout
* refactoring
* test connection timeout
2018-03-17 14:42:50 +01:00

31 lines
1.1 KiB
Java

package edu.allegro.exercise;
import edu.allegro.exercise.model.github.ErrorResponse;
public enum ResultCodes {
BAD_REQUEST(400, 500, "Github client: Bad request"),
NOT_FOUND(404, 404, "Github client: Given repository or owner doesn't exist"),
FORBIDDEN(403, 403, "Github client: API rate limit exceeded"),
TIMEOUT(504, 504, "Githoub client: connection timeout");
private final int statusCode;
private final int internalCode;
private final String statusDescription;
ResultCodes(int statusCode, int internalCode, String statusDescription) {
this.statusCode = statusCode;
this.statusDescription = statusDescription;
this.internalCode = internalCode;
}
public static ErrorResponse fromCode(int statusCode) {
for (ResultCodes resultCodes : ResultCodes.values()) {
if (resultCodes.statusCode == statusCode) {
return new ErrorResponse(resultCodes.internalCode, resultCodes.statusDescription);
}
}
return new ErrorResponse(500, "Server internal error");
}
}