X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Ffacebook%2Fexceptions%2FGraphApiException.java;h=9379abe8958a640b9e7ed54547844f2ce5eef978;hb=f22d6b44c7ca3f63d3fa60a9c98129137325a83d;hp=bd0256570772cf9165d58241ef47104750f65c82;hpb=5f2b31dc7f443ab9eb088d3150e2d4903cb40159;p=facebook-errors diff --git a/src/main/java/de/juplo/facebook/exceptions/GraphApiException.java b/src/main/java/de/juplo/facebook/exceptions/GraphApiException.java index bd02565..9379abe 100644 --- a/src/main/java/de/juplo/facebook/exceptions/GraphApiException.java +++ b/src/main/java/de/juplo/facebook/exceptions/GraphApiException.java @@ -11,6 +11,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import java.io.IOException; import java.io.InputStream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; /** @@ -20,6 +22,10 @@ import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; */ public class GraphApiException extends OAuth2Exception { + public enum Type { OAuthException, GraphMethodException } + + + final static Logger LOG = LoggerFactory.getLogger(GraphApiException.class); final static ObjectMapper OBJECT_MAPPER; private final FacebookErrorMessage error; @@ -63,6 +69,7 @@ public class GraphApiException extends OAuth2Exception case 21: return new PageMigratedException(error); // 100..199: graph method errors case 100: return new UnsupportedGetRequestException(error); + case 104: return new AccessTokenRequiredException(error); // 200..299: permission errors // 300..399: data editing errors // 400..449: authentication error @@ -76,8 +83,11 @@ public class GraphApiException extends OAuth2Exception // 950..999: batch api errors // 1000..1099: event api errors // 1100..1199: live-message errors + case 2200: return new CallbackVerificationFailedException(error); - default: return new UnmappedErrorException(error); + default: + LOG.info("unmapped error: {}", error); + return new UnmappedErrorException(error); } } @@ -89,9 +99,9 @@ public class GraphApiException extends OAuth2Exception } - public String getType() + public Type getType() { - return error.type; + return error.type == null ? null : Type.valueOf(error.type); } public Integer getCode() @@ -129,7 +139,9 @@ public class GraphApiException extends OAuth2Exception } catch(JsonProcessingException e) { - return "Could not convert error in JSON-representation: " + e.getMessage(); + // This should never happen. But in case of a mistake: be verbose! + LOG.error("could not convert message into JSON: {}", e); + return e.getMessage(); } }