
com.infusers.core.email.RemoteEmailUtility Maven / Gradle / Ivy
package com.infusers.core.email;
import java.net.URI;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.infusers.core.constants.InfuserConstants;
import com.infusers.core.user.dto.UserDetailsDto;
import com.infusers.core.util.InfusersUtility;
@Service
public class RemoteEmailUtility {
final Logger log = LogManager.getLogger(RemoteEmailUtility.class);
private static final String CLASS_NAME = "RemoteEmailUtility";
@Value("${infusers.email.endpoint}")
private String emailEndPoint;
@Value("${infusers.email.url}")
private String host;
@Value("${infusers.auth.verify.url}")
private String authVerifyEndPoint;
@Value("${myapp.rom.request.mapping}")
private String requestMapping;
@Value("${infusers.token.inter.api.communication}")
private String infuserTokenInterApiCommunication;
//@Autowired(required = true)
//private AuditService auditService;
public boolean sendEmailNewAccountCreated(UserDetailsDto user) {
if(user==null) {
log.error(CLASS_NAME+".sendEmailNewAccountCreated()--> user is NULL." + user);
return false;
}
String subject = "[FYA] Warm welcome to Infusers!! Please verify your registration.";
String content =
"You have created a new Account!
"
+ "Please click the link below to verify your registration:
"
+ "VERIFY
";
String verifyURL = authVerifyEndPoint + "?code=" + user.getVerificationCode();
content = content.replace("[[URL]]", verifyURL);
return sendEmail(user.getUsername(), subject, content);
}
public boolean sendEmailUserLoggedIn(String userName) {
String subject = "[FYI] Dear Infuser, Welcome Back :)";
String message = "Thank you for your continued support in using Infuser's services, Have a great time ahead!!";
return sendEmail(userName, subject, message);
}
public boolean sendEmail(String userName, String subject, String message) {
log.debug(CLASS_NAME+".sendEmail() userName : " + userName);
//auditService.createAuditRecord(new AuditRecord(userName, AuditEventType.LEVEL_1, CLASS_NAME, "sendEmail()->called."));
String urlString = host + requestMapping + emailEndPoint+"/"+userName;
String endpoint = "";
try {
String bearerToken = InfusersUtility.getInstance().getToken(userName);
URI uri = new URIBuilder(urlString)
.addParameter("subject", subject)
.addParameter("message", message)
.build();
endpoint = uri.toString();
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost request = new HttpPost(endpoint);
request.addHeader("content-type", "application/json");
request.setHeader(InfuserConstants.STATIC_TEXT_AUTHORIZATION, InfuserConstants.STATIC_TEXT_BEARER+" " + bearerToken);
HttpResponse response = httpClient.execute(request);
boolean returnVal = response.getStatusLine().getStatusCode() == 200;
if(returnVal) {
//auditService.createAuditRecord(new AuditRecord(userName, AuditEventType.LEVEL_2, CLASS_NAME, "sendEmail()->successfully called.."));
log.debug(CLASS_NAME+".sendEmail() userName : " + userName+" :: response code = "+response.getStatusLine().getStatusCode());
}
else {
log.error(CLASS_NAME+".sendEmail() userName : " + userName+" :: response code = "+response.getStatusLine().getStatusCode()+" :: endpoint = "+endpoint);
//auditService.createAuditRecord(new AuditRecord(userName, AuditEventType.LEVEL_1, CLASS_NAME, "sendEmail()->failed :: response code = "+response.getStatusLine().getStatusCode()));
}
return returnVal;
}
catch (Exception e) {
log.error(CLASS_NAME+".sendEmail()" + e.getMessage());
//auditService.createAuditRecord(new AuditRecord(userName, AuditEventType.LEVEL_1, CLASS_NAME, "sendEmail()->failed :: exception."));
return false;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy