71 lines
2.9 KiB
Java
71 lines
2.9 KiB
Java
package eu.eudat.logic.managers;
|
|
|
|
import eu.eudat.commons.scope.user.UserScope;
|
|
import eu.eudat.data.UserEntity;
|
|
import eu.eudat.logic.services.ApiContext;
|
|
import eu.eudat.model.UserContactInfo;
|
|
import eu.eudat.models.data.ContactEmail.ContactEmailModel;
|
|
import eu.eudat.models.data.ContactEmail.PublicContactEmailModel;
|
|
import eu.eudat.query.UserContactInfoQuery;
|
|
import eu.eudat.query.UserQuery;
|
|
import eu.eudat.service.mail.SimpleMail;
|
|
import gr.cite.tools.data.query.Ordering;
|
|
import gr.cite.tools.data.query.QueryFactory;
|
|
import org.springframework.core.env.Environment;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import jakarta.mail.MessagingException;
|
|
|
|
import javax.management.InvalidApplicationException;
|
|
|
|
@Component
|
|
public class ContactEmailManager {
|
|
|
|
private ApiContext apiContext;
|
|
private Environment environment;
|
|
private final UserScope userScope;
|
|
private final QueryFactory queryFactory;
|
|
@Autowired
|
|
public ContactEmailManager(ApiContext apiContext, Environment environment, UserScope userScope, QueryFactory queryFactory) {
|
|
this.apiContext = apiContext;
|
|
this.environment = environment;
|
|
this.userScope = userScope;
|
|
this.queryFactory = queryFactory;
|
|
}
|
|
|
|
public void sendContactEmail(ContactEmailModel contactEmailModel) throws MessagingException, InvalidApplicationException {
|
|
UserEntity user = this.queryFactory.query(UserQuery.class).ids(this.userScope.getUserId()).first();
|
|
SimpleMail mail = new SimpleMail();
|
|
UserContactInfoQuery query = this.queryFactory.query(UserContactInfoQuery.class).userIds(user.getId());
|
|
query.setOrder(new Ordering().addAscending(UserContactInfo._ordinal));
|
|
String enrichedMail = contactEmailModel.getDescription() + "\n\n" + "Send by user: " + query.first().getValue() ;
|
|
mail.setSubject(contactEmailModel.getSubject());
|
|
mail.setTo(environment.getProperty("contact_email.mail"));
|
|
mail.setContent(enrichedMail);
|
|
mail.setFrom(query.first().getValue());
|
|
|
|
apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail);
|
|
}
|
|
|
|
public void sendContactEmailNoAuth(PublicContactEmailModel contactEmailModel) throws MessagingException {
|
|
SimpleMail mail = new SimpleMail();
|
|
String enrichedMail = contactEmailModel.getMessage() + "\n\n" + "Send by user: " + contactEmailModel.getEmail() ;
|
|
mail.setSubject(contactEmailModel.getAffiliation());
|
|
mail.setTo(environment.getProperty("contact_email.mail"));
|
|
mail.setContent(enrichedMail);
|
|
mail.setFrom(contactEmailModel.getEmail());
|
|
|
|
apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail);
|
|
}
|
|
|
|
public void emailValidation(ContactEmailModel contactEmailModel) throws Exception {
|
|
if (contactEmailModel.getSubject() == null || contactEmailModel.getSubject().trim().isEmpty()) {
|
|
throw new Exception("Subject is empty");
|
|
}
|
|
if (contactEmailModel.getDescription() == null || contactEmailModel.getDescription().trim().isEmpty()) {
|
|
throw new Exception("Description is empty");
|
|
}
|
|
}
|
|
}
|