aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/oc/OkapiError.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-08-05 00:39:36 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-08-05 00:43:17 +0200
commit1ca3c38f4dc62115feb54b9fcb66dd0de44af8fd (patch)
tree298bb6c8f6014fca0a8c07fd599167bba4c97766 /main/src/cgeo/geocaching/connector/oc/OkapiError.java
parent269a24bb8d0bb8e85fbf15526854b32175c84f1b (diff)
downloadcgeo-1ca3c38f4dc62115feb54b9fcb66dd0de44af8fd.zip
cgeo-1ca3c38f4dc62115feb54b9fcb66dd0de44af8fd.tar.gz
cgeo-1ca3c38f4dc62115feb54b9fcb66dd0de44af8fd.tar.bz2
Use Jackson for Okapi connector
Diffstat (limited to 'main/src/cgeo/geocaching/connector/oc/OkapiError.java')
-rw-r--r--main/src/cgeo/geocaching/connector/oc/OkapiError.java14
1 files changed, 7 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/connector/oc/OkapiError.java b/main/src/cgeo/geocaching/connector/oc/OkapiError.java
index 7faf2c7..b847207 100644
--- a/main/src/cgeo/geocaching/connector/oc/OkapiError.java
+++ b/main/src/cgeo/geocaching/connector/oc/OkapiError.java
@@ -2,11 +2,11 @@ package cgeo.geocaching.connector.oc;
import cgeo.geocaching.utils.Log;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
-import org.json.JSONException;
-import org.json.JSONObject;
/**
* Handles the JSON error response from OKAPI
@@ -26,7 +26,7 @@ public class OkapiError {
@NonNull private final OkapiErrors state;
@NonNull private final String message;
- public OkapiError(@Nullable JSONObject data) {
+ public OkapiError(@Nullable ObjectNode data) {
// A null-response is by definition an error (some exception occurred somewhere in the flow)
if (data == null) {
@@ -39,10 +39,10 @@ public class OkapiError {
String localmessage = null;
OkapiErrors localstate = OkapiErrors.UNSPECIFIED;
try {
- JSONObject error = data.getJSONObject("error");
+ final ObjectNode error = (ObjectNode) data.get("error");
// Check reason_stack element to look for the specific oauth problems we want to report back
if (error.has("reason_stack")) {
- String reason = error.getString("reason_stack");
+ final String reason = error.get("reason_stack").asText();
if (StringUtils.contains(reason, "invalid_oauth_request")) {
if (StringUtils.contains(reason, "invalid_timestamp")) {
localstate = OkapiErrors.INVALID_TIMESTAMP;
@@ -53,10 +53,10 @@ public class OkapiError {
}
// Check if we can extract a message as well
if (error.has("developer_message")) {
- localmessage = error.getString("developer_message");
+ localmessage = error.get("developer_message").asText();
assert localmessage != null; // by virtue of defaultString
}
- } catch (JSONException ex) {
+ } catch (ClassCastException | NullPointerException ex) {
Log.d("OkapiError: Failed to parse JSON", ex);
localstate = OkapiErrors.UNSPECIFIED;
}