package crmdna.group; import crmdna.common.Utils; import crmdna.common.api.APIException; import crmdna.common.api.APIResponse; import crmdna.common.api.APIResponse.Status; import crmdna.common.api.APIUtils; import crmdna.common.api.RequestInfo; import crmdna.group.Group.EmailType; import crmdna.group.Group.GroupProp; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.logging.Logger; @SuppressWarnings("serial") public class EmailTemplateServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html"); String client = null; try { client = req.getParameter("client"); String groupIdStr = req.getParameter("groupId"); if (groupIdStr == null) throw new APIException().status(Status.ERROR_RESOURCE_INCORRECT).message( "group Id not specified in query param"); long groupId = Utils.safeParseAsLong(groupIdStr); String emailTypeStr = req.getParameter("emailType"); if (emailTypeStr == null) throw new APIException().status(Status.ERROR_RESOURCE_INCORRECT).message( "group Id not specified in query param"); emailTypeStr = emailTypeStr.toUpperCase(); EmailType emailType; if (emailTypeStr.equals("REGISTRATION_CONFIRMATION")) emailType = EmailType.REGISTRATION_CONFIRMATION; else if (emailTypeStr.equals("REGISTRATION_REMINDER")) emailType = EmailType.REGISTRATION_REMINDER; else { throw new APIException().status(Status.ERROR_RESOURCE_INCORRECT).message( "Invalid emailType [" + emailTypeStr + "]"); } String template = Group.getEmailTemplate(client, groupId, emailType); if (template == null) { GroupProp groupProp = Group.safeGet(client, groupId).toProp(); resp.getWriter().println( " No template is set for group [" + groupProp.displayName + "], emailType [" + emailType + "]"); } else resp.getWriter().println(template); } catch (Exception ex) { APIResponse apiResponse = APIUtils.toAPIResponse(ex, true, new RequestInfo().client(client).req(req)); String errMessage = "An error occurred. Please try again.\n\n" + "Error code: " + apiResponse.statusCode + "\nMessage: " + apiResponse.userFriendlyMessage + "\n\nStack trace: " + apiResponse.object; Logger logger = Logger.getLogger(EmailTemplateServlet.class.getName()); logger.warning(errMessage); resp.getWriter().println(errMessage); } } }