task notifications
parent
0f9f591c6b
commit
5b4dbac481
@ -1,8 +1,25 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +1,24 @@
|
||||
package ru.ulstu.activity.students.service;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.ulstu.activity.common.service.ActivityNotificationService;
|
||||
import ru.ulstu.activity.students.model.Task;
|
||||
import ru.ulstu.user.service.MailService;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class TaskNotificationService extends ActivityNotificationService<Task> {
|
||||
|
||||
private final MailService mailService;
|
||||
private final static String TEMPLATE_CREATE = "taskCreateNotification";
|
||||
private final static String TITLE_CREATE = "Создана задача";
|
||||
|
||||
public TaskNotificationService(MailService mailService) {
|
||||
this.mailService = mailService;
|
||||
super(mailService);
|
||||
}
|
||||
|
||||
public void sendCreateNotification(Task task) {
|
||||
throw new RuntimeException("not implemented yet");
|
||||
Map<String, Object> variables = ImmutableMap.of("task", task);
|
||||
sendForAllAuthors(variables, task, TEMPLATE_CREATE, TITLE_CREATE);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue