Admin route for loggin
This commit is contained in:
parent
03e64abf9c
commit
27a15a7ff0
3 changed files with 58 additions and 14 deletions
|
@ -30,6 +30,7 @@ import be.jeffcheasey88.peeratcode.routes.PlayerDetails;
|
|||
import be.jeffcheasey88.peeratcode.routes.PuzzleElement;
|
||||
import be.jeffcheasey88.peeratcode.routes.PuzzleResponse;
|
||||
import be.jeffcheasey88.peeratcode.routes.Result;
|
||||
import be.jeffcheasey88.peeratcode.routes.admins.DynamicLogs;
|
||||
import be.jeffcheasey88.peeratcode.routes.groups.GroupCreate;
|
||||
import be.jeffcheasey88.peeratcode.routes.groups.GroupJoin;
|
||||
import be.jeffcheasey88.peeratcode.routes.groups.GroupList;
|
||||
|
@ -53,8 +54,6 @@ public class Main{
|
|||
router.setDefault((matcher, user, reader, writer) -> {
|
||||
writer.response(404, "Access-Control-Allow-Origin: *");
|
||||
writer.write("404 not Found.\n");
|
||||
writer.flush();
|
||||
writer.close();
|
||||
});
|
||||
|
||||
router.register(new Response(){
|
||||
|
@ -82,6 +81,8 @@ public class Main{
|
|||
router.register(new ChangePassword(repo));
|
||||
router.register(new ForgotPassword());
|
||||
|
||||
router.register(new DynamicLogs(repo, new Locker<>())); //to change
|
||||
|
||||
router.register(new ChapterElement(repo));
|
||||
router.register(new ChapterList(repo));
|
||||
router.register(new PuzzleElement(repo));
|
||||
|
@ -91,14 +92,12 @@ public class Main{
|
|||
router.register(new BadgeDetails(repo));
|
||||
|
||||
Locker<Group> groupLock = new Locker<>();
|
||||
router.register(new GroupCreate(repo, groupLock, config.getGroupJoinMinutes()));
|
||||
|
||||
DynamicLeaderboard dlb = new DynamicLeaderboard(repo);
|
||||
router.register(dlb);
|
||||
|
||||
Locker<Completion> leaderboard = dlb.getLocker();
|
||||
Locker<Completion> leaderboard = new Locker<>();
|
||||
|
||||
router.register(new DynamicLeaderboard(repo, leaderboard));
|
||||
router.register(new PuzzleResponse(repo, config.getUsersFiles(), leaderboard));
|
||||
|
||||
router.register(new GroupCreate(repo, groupLock, config.getGroupJoinMinutes()));
|
||||
router.register(new GroupList(repo));
|
||||
router.register(new GroupJoin(repo, config.getGroupJoinMinutes(), config.getGroupQuitMinutes(), leaderboard));
|
||||
router.register(new GroupQuit(repo, config.getGroupJoinMinutes(), leaderboard));
|
||||
|
|
|
@ -16,13 +16,9 @@ public class DynamicLeaderboard extends Leaderboard{
|
|||
|
||||
private Locker<Completion> locker;
|
||||
|
||||
public DynamicLeaderboard(DatabaseRepository databaseRepo){
|
||||
public DynamicLeaderboard(DatabaseRepository databaseRepo, Locker<Completion> locker){
|
||||
super(databaseRepo);
|
||||
this.locker = new Locker<>();
|
||||
}
|
||||
|
||||
public Locker<Completion> getLocker(){
|
||||
return this.locker;
|
||||
this.locker = locker;
|
||||
}
|
||||
|
||||
@RouteDoc(path = "/rleaderboard/{id}", responseCode = 101, responseDescription = "WebSocket")
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
package be.jeffcheasey88.peeratcode.routes.admins;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import be.jeffcheasey88.peeratcode.framework.HttpReader;
|
||||
import be.jeffcheasey88.peeratcode.framework.HttpWriter;
|
||||
import be.jeffcheasey88.peeratcode.framework.Locker;
|
||||
import be.jeffcheasey88.peeratcode.framework.Response;
|
||||
import be.jeffcheasey88.peeratcode.framework.Route;
|
||||
import be.jeffcheasey88.peeratcode.framework.User;
|
||||
import be.jeffcheasey88.peeratcode.framework.Locker.Key;
|
||||
import be.jeffcheasey88.peeratcode.repository.DatabaseRepository;
|
||||
|
||||
public class DynamicLogs implements Response{
|
||||
|
||||
private Locker<Object> locker; //Context
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public DynamicLogs(DatabaseRepository repo, Locker<Object> locker){
|
||||
this.repo = repo;
|
||||
this.locker = locker;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/logs$", needLogin = true, websocket = true)
|
||||
public void exec(Matcher matcher, User user, HttpReader reader, HttpWriter writer) throws Exception {
|
||||
//check if admin
|
||||
|
||||
Key key = new Key();
|
||||
|
||||
locker.init(key);
|
||||
try {
|
||||
while(!reader.isClosed()){
|
||||
Object instance = locker.getValue(key);
|
||||
JSONObject json = new JSONObject();
|
||||
writer.write(json.toJSONString());
|
||||
writer.flush();
|
||||
locker.lock(key);
|
||||
}
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
locker.remove(key);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue