package com.indeed.proctor.webapp.views;
import com.indeed.proctor.common.Serializers;
import com.fasterxml.jackson.databind.ObjectWriter;
import org.springframework.web.servlet.View;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author parker
*/
public class JsonView implements View {
private static final String CONTENT_TYPE = "application/json;charset=utf-8";
private static final ObjectWriter JSON_WRITER = Serializers.strict().writerWithDefaultPrettyPrinter();
private final Object data;
public JsonView(Object data) {
this.data = data;
}
@Override
public String getContentType() {
return CONTENT_TYPE;
}
@Override
public void render(Map<String, ?> model,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setHeader("Content-Type", CONTENT_TYPE);
JSON_WRITER.writeValue(response.getWriter(), data);
}
}