Implemented FacebookErrorHandler to handle facebook-error-codes
[facebook-utils] / src / main / java / de / juplo / facebook / GraphApiExceptionJackson2Serializer.java
diff --git a/src/main/java/de/juplo/facebook/GraphApiExceptionJackson2Serializer.java b/src/main/java/de/juplo/facebook/GraphApiExceptionJackson2Serializer.java
new file mode 100644 (file)
index 0000000..23b02d8
--- /dev/null
@@ -0,0 +1,37 @@
+package de.juplo.facebook;
+
+import java.io.IOException;
+import java.util.Map.Entry;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+
+/**
+ * @author Brian Clozel
+ *
+ */
+public class GraphApiExceptionJackson2Serializer extends StdSerializer<GraphApiException> {
+
+    public GraphApiExceptionJackson2Serializer() {
+        super(GraphApiException.class);
+    }
+
+       @Override
+       public void serialize(GraphApiException value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
+                       JsonProcessingException {
+        jgen.writeStartObject();
+               jgen.writeStringField("error", value.getOAuth2ErrorCode());
+               jgen.writeStringField("error_description", value.getMessage());
+               if (value.getAdditionalInformation()!=null) {
+                       for (Entry<String, String> entry : value.getAdditionalInformation().entrySet()) {
+                               String key = entry.getKey();
+                               String add = entry.getValue();
+                               jgen.writeStringField(key, add);                                
+                       }
+               }
+        jgen.writeEndObject();
+       }
+
+}