preparing display of selcted message
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -115,7 +115,14 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
||||
return switch (head){
|
||||
case null -> listMessages(ex,user.get());
|
||||
case SETTINGS -> getSettings(ex,user.get());
|
||||
default -> super.doGet(path,ex);
|
||||
default -> {
|
||||
try {
|
||||
yield getMessage(ex,user.get(),Integer.parseInt(head));
|
||||
} catch (NumberFormatException ignored) {
|
||||
|
||||
}
|
||||
yield super.doGet(path, ex);
|
||||
}
|
||||
};
|
||||
} catch (NumberFormatException e){
|
||||
return sendContent(ex,HTTP_BAD_REQUEST,"Invalid project id");
|
||||
@@ -124,6 +131,25 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
||||
}
|
||||
}
|
||||
|
||||
private boolean getMessage(HttpExchange ex, UmbrellaUser user, int hash) throws IOException {
|
||||
var envelope = queue.stream()
|
||||
.filter(msg -> msg.isFor(user))
|
||||
.filter(msg -> msg.hashCode() == hash)
|
||||
.findFirst();
|
||||
if (envelope.isPresent()) {
|
||||
var message = envelope.get().message();
|
||||
var sender = message.sender().name();
|
||||
var subject = message.subject().translate(user.language());
|
||||
var body = message.body().translate(user.language());
|
||||
return sendContent(ex,Map.of(
|
||||
SENDER,sender,
|
||||
SUBJECT,subject,
|
||||
BODY,body
|
||||
));
|
||||
}
|
||||
return notFound(ex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doPatch(Path path, HttpExchange ex) throws IOException {
|
||||
addCors(ex);
|
||||
@@ -170,7 +196,8 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
|
||||
var sender = envelope.message().sender().name();
|
||||
var subject = envelope.message().subject().translate(lang);
|
||||
var time = envelope.time().format(TIME_FORMATTER);
|
||||
return new JSONObject(Map.of(SENDER,sender,SUBJECT,subject,TIMESTAMP,time));
|
||||
var hash = envelope.hashCode();
|
||||
return new JSONObject(Map.of(SENDER,sender,SUBJECT,subject,TIMESTAMP,time,HASH,hash));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user