Open Kaia15 opened 1 year ago
package com.utube.emailservice.service;
import java.util.List;
import com.utube.emailservice.entity.Email;
public interface EmailService {
public List
package com.utube.emailservice.kafka;
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Service; import com.utube.userservice.kafka.event.UserCreatedEvent; import com.utube.emailservice.service.EmailServiceImp; import com.utube.emailservice.entity.Email; import com.utube.emailservice.repository.EmailRepository;
@Service public class UserConsumer { private static final Logger logger = LoggerFactory.getLogger(UserConsumer.class); private EmailServiceImp emailSrvc; private EmailRepository emailRepository;
@Autowired
public UserConsumer(EmailServiceImp emailService, EmailRepository emailRepository) {
this.emailSrvc = emailService;
this.emailRepository = emailRepository;
}
@KafkaListener(topics = "${spring.kafka.topic.name}",
groupId = "${spring.kafka.consumer.group-id}")
public void consume(UserCreatedEvent event) {
logger.info(String.format("User event => %s", event.toString()));
Email email_info = new Email(null, null, null, null, null, null, null, null);
email_info.setRecipientEmail(event.getUserEmail());
email_info.setRecipientId(event.getUserId());
email_info.setSenderEmail("no-reply@xxxx.io");
email_info.setSubject("Thank you for subscribing XXX");
email_info.setBodyText("Welcome to XXX community!");
emailSrvc.saveOrUpdate(email_info);
emailSrvc.sendEmail(email_info);
logger.info("Email sent successfully...");
}
}
package com.utube.emailservice.service;
import java.util.List;
import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service;
import com.utube.emailservice.entity.Email; import com.utube.emailservice.repository.EmailRepository;
@Service public class EmailServiceImp implements EmailService { private EmailRepository emailRepository; private JavaMailSender javaMailSender;
}