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.PuzzleElement;
|
||||||
import be.jeffcheasey88.peeratcode.routes.PuzzleResponse;
|
import be.jeffcheasey88.peeratcode.routes.PuzzleResponse;
|
||||||
import be.jeffcheasey88.peeratcode.routes.Result;
|
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.GroupCreate;
|
||||||
import be.jeffcheasey88.peeratcode.routes.groups.GroupJoin;
|
import be.jeffcheasey88.peeratcode.routes.groups.GroupJoin;
|
||||||
import be.jeffcheasey88.peeratcode.routes.groups.GroupList;
|
import be.jeffcheasey88.peeratcode.routes.groups.GroupList;
|
||||||
|
@ -53,8 +54,6 @@ public class Main{
|
||||||
router.setDefault((matcher, user, reader, writer) -> {
|
router.setDefault((matcher, user, reader, writer) -> {
|
||||||
writer.response(404, "Access-Control-Allow-Origin: *");
|
writer.response(404, "Access-Control-Allow-Origin: *");
|
||||||
writer.write("404 not Found.\n");
|
writer.write("404 not Found.\n");
|
||||||
writer.flush();
|
|
||||||
writer.close();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.register(new Response(){
|
router.register(new Response(){
|
||||||
|
@ -82,6 +81,8 @@ public class Main{
|
||||||
router.register(new ChangePassword(repo));
|
router.register(new ChangePassword(repo));
|
||||||
router.register(new ForgotPassword());
|
router.register(new ForgotPassword());
|
||||||
|
|
||||||
|
router.register(new DynamicLogs(repo, new Locker<>())); //to change
|
||||||
|
|
||||||
router.register(new ChapterElement(repo));
|
router.register(new ChapterElement(repo));
|
||||||
router.register(new ChapterList(repo));
|
router.register(new ChapterList(repo));
|
||||||
router.register(new PuzzleElement(repo));
|
router.register(new PuzzleElement(repo));
|
||||||
|
@ -91,14 +92,12 @@ public class Main{
|
||||||
router.register(new BadgeDetails(repo));
|
router.register(new BadgeDetails(repo));
|
||||||
|
|
||||||
Locker<Group> groupLock = new Locker<>();
|
Locker<Group> groupLock = new Locker<>();
|
||||||
router.register(new GroupCreate(repo, groupLock, config.getGroupJoinMinutes()));
|
Locker<Completion> leaderboard = new Locker<>();
|
||||||
|
|
||||||
DynamicLeaderboard dlb = new DynamicLeaderboard(repo);
|
|
||||||
router.register(dlb);
|
|
||||||
|
|
||||||
Locker<Completion> leaderboard = dlb.getLocker();
|
|
||||||
|
|
||||||
|
router.register(new DynamicLeaderboard(repo, leaderboard));
|
||||||
router.register(new PuzzleResponse(repo, config.getUsersFiles(), 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 GroupList(repo));
|
||||||
router.register(new GroupJoin(repo, config.getGroupJoinMinutes(), config.getGroupQuitMinutes(), leaderboard));
|
router.register(new GroupJoin(repo, config.getGroupJoinMinutes(), config.getGroupQuitMinutes(), leaderboard));
|
||||||
router.register(new GroupQuit(repo, config.getGroupJoinMinutes(), leaderboard));
|
router.register(new GroupQuit(repo, config.getGroupJoinMinutes(), leaderboard));
|
||||||
|
|
|
@ -16,13 +16,9 @@ public class DynamicLeaderboard extends Leaderboard{
|
||||||
|
|
||||||
private Locker<Completion> locker;
|
private Locker<Completion> locker;
|
||||||
|
|
||||||
public DynamicLeaderboard(DatabaseRepository databaseRepo){
|
public DynamicLeaderboard(DatabaseRepository databaseRepo, Locker<Completion> locker){
|
||||||
super(databaseRepo);
|
super(databaseRepo);
|
||||||
this.locker = new Locker<>();
|
this.locker = locker;
|
||||||
}
|
|
||||||
|
|
||||||
public Locker<Completion> getLocker(){
|
|
||||||
return this.locker;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RouteDoc(path = "/rleaderboard/{id}", responseCode = 101, responseDescription = "WebSocket")
|
@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