package com.comandante.stickypunch.http.resource.jackson; import com.comandante.stickypunch.api.model.WebPushUser; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class WebPushUserSerializer extends JsonSerializer<WebPushUser> { public static final WebPushUserSerializer INSTANCE = new WebPushUserSerializer(); @Override public void serialize(WebPushUser value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject(); if (value.getDeviceToken().isPresent()) { jgen.writeStringField("deviceToken", value.getDeviceToken().get()); } if (value.getActive().isPresent()) { jgen.writeBooleanField("isActive", value.getActive().get()); } if (value.getUserId().isPresent()) { jgen.writeStringField("userId", value.getUserId().get()); } if (value.getWebsitePushId().isPresent()) { jgen.writeStringField("websitePushId", value.getWebsitePushId().get()); } if (value.getActiveTimestamp().isPresent()) { SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss.SSS"); Date dt = new Date(value.getActiveTimestamp().get()); String readableDate = sdf.format(dt); jgen.writeStringField("activeDate", readableDate); } jgen.writeEndObject(); } }