UntisClient/src/main/java/ley/untis/exception/APIRequestException.java

56 lines
1.5 KiB
Java
Raw Normal View History

2020-01-18 12:52:47 +01:00
package ley.untis.exception;
2020-01-25 15:38:50 +01:00
import org.omg.CORBA.UNKNOWN;
2020-01-18 12:52:47 +01:00
public class APIRequestException extends Exception {
Throwable source;
2020-01-25 15:38:50 +01:00
String message;
EnumError errorType;
2020-01-18 12:52:47 +01:00
public APIRequestException(Throwable error) {
source = error;
2020-01-25 15:38:50 +01:00
message = source.getMessage();
if (message == null) {
errorType = EnumError.UNKNOWN;
} else if (message.contains("no such element")) {
errorType = EnumError.ELEMENTNOTFOUND;
} else if (message.contains("no right")) {
errorType = EnumError.NOPERMISSION;
2020-02-11 18:57:51 +01:00
} else if (message.contains("webuntis.com")) {
errorType = EnumError.NOCONNECTION;
}else {
2020-01-25 15:38:50 +01:00
switch (message) {
case "bad credentials":
errorType = EnumError.BADCREDENTIALS;
break;
case "0":
errorType = EnumError.SCHOOLNOTFOUND;
break;
case "too many results":
errorType = EnumError.TOOMANYSCHOOLS;
break;
2020-01-29 17:06:38 +01:00
case "no allowed date":
errorType = EnumError.DATENOTALLOWED;
2020-01-25 15:38:50 +01:00
default:
errorType = EnumError.UNKNOWN;
break;
}
}
}
public EnumError getError() {
return errorType;
2020-01-18 12:52:47 +01:00
}
@Override
public String getMessage() {
2020-01-25 15:38:50 +01:00
return message;
2020-01-18 12:52:47 +01:00
}
@Override
public String getLocalizedMessage() {
return source.getLocalizedMessage();
}
}