package com.mossle.internal.sendmail.rs; import java.util.Map; import javax.annotation.Resource; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import com.mossle.core.mapper.JsonMapper; import com.mossle.core.util.BaseDTO; import com.mossle.core.util.StringUtils; import com.mossle.internal.sendmail.service.SendmailDataService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Component @Path("sendmail") public class SendmailResource { private static Logger logger = LoggerFactory .getLogger(SendmailResource.class); private SendmailDataService sendmailDataService; private JsonMapper jsonMapper = new JsonMapper(); @Path("send") @POST public BaseDTO send(@FormParam("to") String to, @FormParam("subject") String subject, @FormParam("content") String content, @FormParam("configCode") String configCode, @FormParam("tenantId") String tenantId) { BaseDTO baseDto = new BaseDTO(); if (StringUtils.isBlank(to)) { logger.debug("to should not be empty"); baseDto.setCode(400); baseDto.setMessage("to should not be empty"); return baseDto; } if (StringUtils.isBlank(subject)) { logger.debug("subject should not be empty"); baseDto.setCode(400); baseDto.setMessage("subject should not be empty"); return baseDto; } if (StringUtils.isBlank(content)) { logger.debug("content should not be empty"); baseDto.setCode(400); baseDto.setMessage("content should not be empty"); return baseDto; } if (StringUtils.isBlank(configCode)) { logger.debug("configCode should not be empty"); baseDto.setCode(400); baseDto.setMessage("configCode should not be empty"); return baseDto; } try { sendmailDataService .send(to, subject, content, configCode, tenantId); baseDto.setCode(200); logger.debug("success"); } catch (Exception ex) { logger.debug("error"); logger.error(ex.getMessage(), ex); baseDto.setCode(500); baseDto.setMessage(ex.getMessage()); } return baseDto; } @Path("sendTemplate") @POST public BaseDTO sendTemplate(@FormParam("to") String to, @FormParam("data") String data, @FormParam("templateCode") String templateCode, @FormParam("configCode") String configCode, @FormParam("tenantId") String tenantId) { logger.debug("to : {}", to); logger.debug("data : {}", data); logger.debug("templateCode : {}", templateCode); logger.debug("configCode : {}", configCode); BaseDTO baseDto = new BaseDTO(); if (StringUtils.isBlank(templateCode)) { logger.debug("templateCode should not be empty"); baseDto.setCode(400); baseDto.setMessage("templateCode should not be empty"); return baseDto; } if (StringUtils.isBlank(configCode)) { logger.debug("configCode should not be empty"); baseDto.setCode(400); baseDto.setMessage("configCode should not be empty"); return baseDto; } if (StringUtils.isNotBlank(data)) { try { jsonMapper.fromJson(data, Map.class); } catch (Exception ex) { logger.warn(ex.getMessage(), ex); baseDto.setCode(400); baseDto.setMessage(ex.getMessage()); return baseDto; } } boolean templateExists = sendmailDataService.checkTemplateCodeExists( templateCode, tenantId); if (!templateExists) { logger.debug("templateCode doesnot exists : {}", templateCode); baseDto.setCode(400); baseDto.setMessage("templateCode doesnot exists : " + templateCode); return baseDto; } boolean configExists = sendmailDataService.checkConfigCodeExists( configCode, tenantId); if (!configExists) { logger.debug("configCode doesnot exists : {}", configCode); baseDto.setCode(400); baseDto.setMessage("configCode doesnot exists : " + configCode); return baseDto; } try { sendmailDataService.sendTemplate(to, data, templateCode, configCode, tenantId); baseDto.setCode(200); logger.debug("success"); } catch (Exception ex) { logger.debug("error"); logger.error(ex.getMessage(), ex); baseDto.setCode(500); baseDto.setMessage(ex.getMessage()); } return baseDto; } @Resource public void setSendmailDataService(SendmailDataService sendmailDataService) { this.sendmailDataService = sendmailDataService; } }