All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.infusers.core.email.RemoteEmailUtility Maven / Gradle / Ivy

There is a newer version: 2025.03.0001
Show newest version
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