Merge branch 'feature/notifications' into dev
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
package de.srsoftware.umbrella.message;
|
||||
|
||||
import static de.srsoftware.umbrella.core.ConnectionProvider.connect;
|
||||
import static de.srsoftware.umbrella.core.ModuleRegistry.userService;
|
||||
import static de.srsoftware.umbrella.core.constants.Constants.TIME_FORMATTER;
|
||||
import static de.srsoftware.umbrella.core.constants.Constants.UTF8;
|
||||
import static de.srsoftware.umbrella.core.constants.Field.*;
|
||||
@@ -112,7 +113,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = ModuleRegistry.userService().loadUser(token);
|
||||
var user = userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var id = path.pop();
|
||||
return switch (id){
|
||||
@@ -139,7 +140,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = ModuleRegistry.userService().loadUser(token);
|
||||
var user = userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head){
|
||||
@@ -210,7 +211,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
||||
private synchronized void processMessages(Integer scheduledHour) {
|
||||
LOG.log(INFO,"Running {0}…",scheduledHour == null ? "instantly" : "scheduled at "+scheduledHour);
|
||||
|
||||
var dueRecipients = queue.getReceivers().filter(uu -> sendAt(uu,scheduledHour)).toList();
|
||||
var dueRecipients = queue.getReceivers().map(this::toUmbrellaUser).filter(uu -> sendAt(uu,scheduledHour)).toList();
|
||||
|
||||
var date = new Date();
|
||||
|
||||
@@ -236,6 +237,12 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
||||
if (scheduledHour != null) new SubmissionTask(scheduledHour).schedule();
|
||||
}
|
||||
|
||||
private User toUmbrellaUser(User user) {
|
||||
var umbrellaUser = userService().load(user.email());
|
||||
if (umbrellaUser.isPresent()) return umbrellaUser.get();
|
||||
return user;
|
||||
}
|
||||
|
||||
private boolean sendMessage(HttpExchange ex, UmbrellaUser user, Envelope<?> envelope) throws IOException {
|
||||
var message = envelope.message();
|
||||
if (message instanceof TranslatableMessage tm) message = tm.translate(user.language());
|
||||
|
||||
Reference in New Issue
Block a user