Merge branch 'feature/notifications' into dev
All checks were successful
Build Docker Image / Docker-Build (push) Successful in 2m5s
Build Docker Image / Clean-Registry (push) Successful in -2s

This commit is contained in:
2026-01-27 08:45:02 +01:00
5 changed files with 20 additions and 4 deletions

View File

@@ -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());