Remove login for SSE + set admin get to post
This commit is contained in:
parent
51d6d311fb
commit
e746d6fe2b
2 changed files with 9 additions and 19 deletions
|
@ -1,10 +1,7 @@
|
||||||
package dev.peerat.backend.routes;
|
package dev.peerat.backend.routes;
|
||||||
|
|
||||||
import dev.peerat.backend.Configuration;
|
import java.util.regex.Matcher;
|
||||||
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 dev.peerat.framework.Context;
|
import dev.peerat.framework.Context;
|
||||||
import dev.peerat.framework.HttpWriter;
|
import dev.peerat.framework.HttpWriter;
|
||||||
import dev.peerat.framework.Injection;
|
import dev.peerat.framework.Injection;
|
||||||
|
@ -15,22 +12,14 @@ import dev.peerat.framework.Route;
|
||||||
public class EventSSE{
|
public class EventSSE{
|
||||||
|
|
||||||
private Locker<GroupMessage> locker;
|
private Locker<GroupMessage> locker;
|
||||||
private DatabaseGroupRepository repo;
|
|
||||||
private int eventChapter;
|
|
||||||
|
|
||||||
public EventSSE(@Injection("groupMessages") Locker<GroupMessage> locker, DatabaseRepository repo, Configuration config){
|
public EventSSE(@Injection("groupMessages") Locker<GroupMessage> locker){
|
||||||
this.locker = locker;
|
this.locker = locker;
|
||||||
this.repo = repo.getGroupRepository();
|
|
||||||
this.eventChapter = config.getEventChapter();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Route(path = "^/group/event/$", needLogin = true)
|
@Route(path = "^/group/event/([a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100})$")
|
||||||
public void connect(Context context, HttpWriter writer) throws Exception {
|
public void connect(Matcher matcher, Context context, HttpWriter writer) throws Exception {
|
||||||
Group group = repo.getPlayerGroup(context.<PeerAtUser>getUser().getId(), this.eventChapter);
|
String group = matcher.group(1);
|
||||||
if(group == null){
|
|
||||||
context.response(401);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
context.response(200, "Content-Type: text/event-stream");
|
context.response(200, "Content-Type: text/event-stream");
|
||||||
|
|
||||||
Key key = new Key();
|
Key key = new Key();
|
||||||
|
@ -39,7 +28,7 @@ public class EventSSE{
|
||||||
try {
|
try {
|
||||||
while(true){
|
while(true){
|
||||||
GroupMessage message = locker.getValue(key);
|
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.write("data: "+message.getMessage()+"\n\n");
|
||||||
writer.flush();
|
writer.flush();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import dev.peerat.framework.Context;
|
||||||
import dev.peerat.framework.HttpReader;
|
import dev.peerat.framework.HttpReader;
|
||||||
import dev.peerat.framework.Injection;
|
import dev.peerat.framework.Injection;
|
||||||
import dev.peerat.framework.Locker;
|
import dev.peerat.framework.Locker;
|
||||||
|
import dev.peerat.framework.RequestType;
|
||||||
import dev.peerat.framework.Route;
|
import dev.peerat.framework.Route;
|
||||||
import dev.peerat.framework.utils.json.JsonMap;
|
import dev.peerat.framework.utils.json.JsonMap;
|
||||||
|
|
||||||
|
@ -16,7 +17,7 @@ public class GroupController {
|
||||||
this.locker = locker;
|
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{
|
public void send(Context context, HttpReader reader) throws Exception{
|
||||||
JsonMap json = reader.readJson();
|
JsonMap json = reader.readJson();
|
||||||
if(!json.has("message")){
|
if(!json.has("message")){
|
||||||
|
|
Loading…
Add table
Reference in a new issue