ng-tracker/src/main/java/ru/ulstu/activity/common/service/ActivityNotificationService.java
2019-07-20 16:15:20 +04:00

26 lines
919 B
Java

package ru.ulstu.activity.common.service;
import ru.ulstu.activity.common.model.AbstractActivity;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.MailService;
import java.util.Map;
public abstract class ActivityNotificationService<T extends AbstractActivity> {
private final MailService mailService;
protected ActivityNotificationService(MailService mailService) {
this.mailService = mailService;
}
public abstract void sendCreateNotification(T entity);
protected void sendForAuthor(Map<String, Object> variables, User author, String template, String title) {
mailService.sendEmailFromTemplate(variables, author, template, title);
}
protected void sendForAllAuthors(Map<String, Object> variables, T entity, String template, String title) {
entity.getActivityMembers().forEach(author -> sendForAuthor(variables, author, template, title));
}
}