From e746d6fe2bb8cf5d1496edf4ea5a5568ef580558 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Tue, 28 Jan 2025 00:23:49 +0100 Subject: [PATCH] Remove login for SSE + set admin get to post --- src/dev/peerat/backend/routes/EventSSE.java | 25 ++++++------------- .../routes/admins/GroupController.java | 3 ++- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/dev/peerat/backend/routes/EventSSE.java b/src/dev/peerat/backend/routes/EventSSE.java index c136673..cc32651 100644 --- a/src/dev/peerat/backend/routes/EventSSE.java +++ b/src/dev/peerat/backend/routes/EventSSE.java @@ -1,10 +1,7 @@ package dev.peerat.backend.routes; -import dev.peerat.backend.Configuration; -import dev.peerat.backend.model.Group; -import dev.peerat.backend.model.PeerAtUser; -import dev.peerat.backend.repository.DatabaseGroupRepository; -import dev.peerat.backend.repository.DatabaseRepository; +import java.util.regex.Matcher; + import dev.peerat.framework.Context; import dev.peerat.framework.HttpWriter; import dev.peerat.framework.Injection; @@ -15,22 +12,14 @@ import dev.peerat.framework.Route; public class EventSSE{ private Locker locker; - private DatabaseGroupRepository repo; - private int eventChapter; - public EventSSE(@Injection("groupMessages") Locker locker, DatabaseRepository repo, Configuration config){ + public EventSSE(@Injection("groupMessages") Locker locker){ this.locker = locker; - this.repo = repo.getGroupRepository(); - this.eventChapter = config.getEventChapter(); } - @Route(path = "^/group/event/$", needLogin = true) - public void connect(Context context, HttpWriter writer) throws Exception { - Group group = repo.getPlayerGroup(context.getUser().getId(), this.eventChapter); - if(group == null){ - context.response(401); - return; - } + @Route(path = "^/group/event/([a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100})$") + public void connect(Matcher matcher, Context context, HttpWriter writer) throws Exception { + String group = matcher.group(1); context.response(200, "Content-Type: text/event-stream"); Key key = new Key(); @@ -39,7 +28,7 @@ public class EventSSE{ try { while(true){ GroupMessage message = locker.getValue(key); - if(message.getGroup() == null || message.getGroup().equals(group.getName())){ + if(message.getGroup() == null || message.getGroup().equals(group)){ writer.write("data: "+message.getMessage()+"\n\n"); writer.flush(); } diff --git a/src/dev/peerat/backend/routes/admins/GroupController.java b/src/dev/peerat/backend/routes/admins/GroupController.java index 5f024fa..6cecf10 100644 --- a/src/dev/peerat/backend/routes/admins/GroupController.java +++ b/src/dev/peerat/backend/routes/admins/GroupController.java @@ -5,6 +5,7 @@ import dev.peerat.framework.Context; import dev.peerat.framework.HttpReader; import dev.peerat.framework.Injection; import dev.peerat.framework.Locker; +import dev.peerat.framework.RequestType; import dev.peerat.framework.Route; import dev.peerat.framework.utils.json.JsonMap; @@ -16,7 +17,7 @@ public class GroupController { this.locker = locker; } - @Route(path = "^/admin/event/$", needLogin = true) + @Route(path = "^/admin/event/$", type = RequestType.POST ,needLogin = true) public void send(Context context, HttpReader reader) throws Exception{ JsonMap json = reader.readJson(); if(!json.has("message")){