Admin logs -> request type in String + base route for editing chapter & puzzle
This commit is contained in:
parent
68dd312a42
commit
3b98624df9
12 changed files with 312 additions and 2 deletions
|
@ -23,6 +23,14 @@ import dev.peerat.backend.routes.PuzzleResponse;
|
|||
import dev.peerat.backend.routes.Result;
|
||||
import dev.peerat.backend.routes.Swagger;
|
||||
import dev.peerat.backend.routes.admins.DynamicLogs;
|
||||
import dev.peerat.backend.routes.admins.chapter.AddChapter;
|
||||
import dev.peerat.backend.routes.admins.chapter.DeleteChapter;
|
||||
import dev.peerat.backend.routes.admins.chapter.EditChapter;
|
||||
import dev.peerat.backend.routes.admins.chapter.GetChapter;
|
||||
import dev.peerat.backend.routes.admins.puzzle.AddPuzzle;
|
||||
import dev.peerat.backend.routes.admins.puzzle.DeletePuzzle;
|
||||
import dev.peerat.backend.routes.admins.puzzle.EditPuzzle;
|
||||
import dev.peerat.backend.routes.admins.puzzle.GetPuzzle;
|
||||
import dev.peerat.backend.routes.groups.GroupCreate;
|
||||
import dev.peerat.backend.routes.groups.GroupJoin;
|
||||
import dev.peerat.backend.routes.groups.GroupList;
|
||||
|
@ -88,7 +96,7 @@ public class Main{
|
|||
router.addInterceptor(new RouteInterceptor(){
|
||||
@Override
|
||||
public boolean intercept(Matcher matcher, Context context, HttpReader reader, HttpWriter writer, Method method){
|
||||
if(method.getDeclaringClass().getPackage().getName().endsWith("admins")){
|
||||
if(method.getDeclaringClass().getPackage().getName().contains(".admins")){
|
||||
try {
|
||||
Group group = repo.getPlayerGroup(context.<PeerAtUser>getUser().getId(), 1);
|
||||
if(!group.getName().equalsIgnoreCase("Quarter-Master - Battles PAC x CEI")) return false;
|
||||
|
@ -144,6 +152,15 @@ public class Main{
|
|||
register(new ForgotPassword(router, repo, mail)).
|
||||
|
||||
register(new DynamicLogs(router.getLogger(), repo)).
|
||||
register(new AddChapter(repo)).
|
||||
register(new DeleteChapter(repo)).
|
||||
register(new EditChapter(repo)).
|
||||
register(new GetChapter(repo)).
|
||||
|
||||
register(new AddPuzzle(repo)).
|
||||
register(new DeletePuzzle(repo)).
|
||||
register(new EditPuzzle(repo)).
|
||||
register(new GetPuzzle(repo)).
|
||||
|
||||
register(new ChapterElement(repo)).
|
||||
register(new ChapterList(repo)).
|
||||
|
|
|
@ -90,6 +90,17 @@ public enum DatabaseQuery {
|
|||
GET_BADGE("SELECT * FROM badges WHERE id_badge = ?"), GET_BADGES_OF_PLAYER(
|
||||
"SELECT * FROM badges b LEFT JOIN containsBadges cb ON cb.fk_badge = b.id_badge WHERE cb.fk_player = ?"),
|
||||
|
||||
//ADMIN
|
||||
ADD_CHAPTER("INSERT INTO chapters (name, start_date, end_date) VALUES (?,?,?)"),
|
||||
DELETE_CHAPTER("DELETE FROM chapters WHERE id_chapter = ?"),
|
||||
EDIT_CHAPTER("UPDATE chapters SET name = ?, start_date = ?, end_date = ? WHERE id_chapter = ?"),
|
||||
GET_CHAPTER("SELECT name, start_date, end_date FROM chapters WHERE id_chapter = ?"),
|
||||
|
||||
ADD_PUZZLE("INSERT INTO puzzles (name, content, soluce, verify, score_max, fk_chapter) VALUES (?,?,?,?,?,?)"),
|
||||
DELETE_PUZZLE("DELETE FROM puzzles WHERE id_puzzle = ?"),
|
||||
EDIT_PUZZLE("UPDATE puzzles SET name = ?, content = ?, soluce = ?, verify = ?, score_max = ?, fk_chapter = ? WHERE id_puzzle = ?"),
|
||||
GET_PUZZLE("SELECT name, content, soluce, verify, score_max, fk_chapter FROM puzzles WHERE id_puzzle = ?"),
|
||||
|
||||
//TRIGGER
|
||||
FIRST_TRY("CREATE OR REPLACE TRIGGER FirstTry\r\n"
|
||||
+ "AFTER INSERT\r\n"
|
||||
|
|
|
@ -692,4 +692,37 @@ public class DatabaseRepository {
|
|||
statement.setInt(5, user);
|
||||
statement.executeUpdate();
|
||||
}
|
||||
|
||||
|
||||
//ADMIN
|
||||
public Chapter getAdminChapter(int id){
|
||||
try {
|
||||
ensureConnection();
|
||||
PreparedStatement chapterStmt = DatabaseQuery.GET_CHAPTER.prepare(this.con);
|
||||
chapterStmt.setInt(1, id);
|
||||
ResultSet chapterResult = chapterStmt.executeQuery();
|
||||
if (chapterResult.next()) {
|
||||
Chapter chapter = makeChapter(chapterResult);
|
||||
return chapter;
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Puzzle getAdminPuzzle(int id){
|
||||
try {
|
||||
ensureConnection();
|
||||
PreparedStatement chapterStmt = DatabaseQuery.GET_PUZZLE.prepare(this.con);
|
||||
chapterStmt.setInt(1, id);
|
||||
ResultSet chapterResult = chapterStmt.executeQuery();
|
||||
if (chapterResult.next()) {
|
||||
return makePuzzle(chapterResult);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -41,7 +41,7 @@ public class DynamicLogs implements Response{
|
|||
json.set("logged", instance.isLogged());
|
||||
if(instance.isLogged()) json.set("pseudo", repo.getPlayer(instance.<PeerAtUser>getUser().getId()).getPseudo());
|
||||
json.set("path", instance.getPath());
|
||||
json.set("type", instance.getType());
|
||||
json.set("type", instance.getType().toString());
|
||||
json.set("code", instance.getResponseCode());
|
||||
|
||||
writer.write(json.toString());
|
||||
|
|
33
src/dev/peerat/backend/routes/admins/chapter/AddChapter.java
Normal file
33
src/dev/peerat/backend/routes/admins/chapter/AddChapter.java
Normal file
|
@ -0,0 +1,33 @@
|
|||
package dev.peerat.backend.routes.admins.chapter;
|
||||
|
||||
import static dev.peerat.framework.RequestType.POST;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.model.Chapter;
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class AddChapter implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public AddChapter(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/chapter/$", type = POST, needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
JsonMap json = reader.readJson();
|
||||
|
||||
Chapter chapter = new Chapter(-1, json.get("name"), Timestamp.valueOf(json.<String>get("start")), Timestamp.valueOf(json.<String>get("end")));
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package dev.peerat.backend.routes.admins.chapter;
|
||||
|
||||
import static dev.peerat.framework.RequestType.DELETE;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
|
||||
public class DeleteChapter implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public DeleteChapter(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/chapter/(\\d+)$", type = DELETE, needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
int id = Integer.parseInt(matcher.group(1));
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package dev.peerat.backend.routes.admins.chapter;
|
||||
|
||||
import static dev.peerat.framework.RequestType.PUT;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class EditChapter implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public EditChapter(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/chapter/(\\d+)$", type = PUT, needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
JsonMap json = reader.readJson();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
34
src/dev/peerat/backend/routes/admins/chapter/GetChapter.java
Normal file
34
src/dev/peerat/backend/routes/admins/chapter/GetChapter.java
Normal file
|
@ -0,0 +1,34 @@
|
|||
package dev.peerat.backend.routes.admins.chapter;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.model.Chapter;
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class GetChapter implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public GetChapter(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/chapter/(\\d+)$", needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
Chapter chapter = this.repo.getAdminChapter(Integer.parseInt(matcher.group(1)));
|
||||
JsonMap json = new JsonMap();
|
||||
json.set("name", chapter.getName());
|
||||
json.set("start", chapter.getStartDate());
|
||||
json.set("end", chapter.getEndDate());
|
||||
|
||||
context.response(200);
|
||||
writer.write(json.toString()+"\n");
|
||||
}
|
||||
|
||||
}
|
30
src/dev/peerat/backend/routes/admins/puzzle/AddPuzzle.java
Normal file
30
src/dev/peerat/backend/routes/admins/puzzle/AddPuzzle.java
Normal file
|
@ -0,0 +1,30 @@
|
|||
package dev.peerat.backend.routes.admins.puzzle;
|
||||
|
||||
import static dev.peerat.framework.RequestType.POST;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class AddPuzzle implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public AddPuzzle(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/puzzle/$", type = POST, needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
JsonMap json = reader.readJson();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package dev.peerat.backend.routes.admins.puzzle;
|
||||
|
||||
import static dev.peerat.framework.RequestType.DELETE;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class DeletePuzzle implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public DeletePuzzle(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/puzzle/(\\d+)$", type = DELETE, needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
JsonMap json = reader.readJson();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
30
src/dev/peerat/backend/routes/admins/puzzle/EditPuzzle.java
Normal file
30
src/dev/peerat/backend/routes/admins/puzzle/EditPuzzle.java
Normal file
|
@ -0,0 +1,30 @@
|
|||
package dev.peerat.backend.routes.admins.puzzle;
|
||||
|
||||
import static dev.peerat.framework.RequestType.PUT;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class EditPuzzle implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public EditPuzzle(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/puzzle/(\\d+)$", type = PUT, needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
JsonMap json = reader.readJson();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
35
src/dev/peerat/backend/routes/admins/puzzle/GetPuzzle.java
Normal file
35
src/dev/peerat/backend/routes/admins/puzzle/GetPuzzle.java
Normal file
|
@ -0,0 +1,35 @@
|
|||
package dev.peerat.backend.routes.admins.puzzle;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import dev.peerat.backend.model.Puzzle;
|
||||
import dev.peerat.backend.repository.DatabaseRepository;
|
||||
import dev.peerat.framework.Context;
|
||||
import dev.peerat.framework.HttpReader;
|
||||
import dev.peerat.framework.HttpWriter;
|
||||
import dev.peerat.framework.Response;
|
||||
import dev.peerat.framework.Route;
|
||||
import dev.peerat.framework.utils.json.JsonMap;
|
||||
|
||||
public class GetPuzzle implements Response{
|
||||
|
||||
private DatabaseRepository repo;
|
||||
|
||||
public GetPuzzle(DatabaseRepository repo){
|
||||
this.repo = repo;
|
||||
}
|
||||
|
||||
@Route(path = "^/admin/puzzle/(\\d+)$", needLogin = true)
|
||||
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
|
||||
Puzzle puzzle = this.repo.getAdminPuzzle(Integer.parseInt(matcher.group(1)));
|
||||
JsonMap json = new JsonMap();
|
||||
json.set("name", puzzle.getName());
|
||||
json.set("content", puzzle.getContent());
|
||||
json.set("soluce", puzzle.getSoluce());
|
||||
json.set("score_max", puzzle.getScoreMax());
|
||||
|
||||
context.response(200);
|
||||
writer.write(json.toString()+"\n");
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue