Compare commits

...

3 commits

Author SHA1 Message Date
b6071bcb21 TagController 2024-09-23 03:56:36 +02:00
d29f86e116 PuzzleController 2024-09-23 03:51:59 +02:00
9807d94971 Chapter Add|Delete|Edit|Get -> ChapterController 2024-09-23 03:42:51 +02:00
18 changed files with 200 additions and 485 deletions

Binary file not shown.

View file

@ -9,47 +9,9 @@ import java.util.Map.Entry;
import java.util.regex.Matcher;
import dev.peerat.backend.bonus.extract.RouteExtracter;
import dev.peerat.backend.model.Completion;
import dev.peerat.backend.model.Group;
import dev.peerat.backend.model.PeerAtUser;
import dev.peerat.backend.repository.DatabaseRepository;
import dev.peerat.backend.routes.BadgeDetails;
import dev.peerat.backend.routes.ChapterElement;
import dev.peerat.backend.routes.ChapterList;
import dev.peerat.backend.routes.DynamicLeaderboard;
import dev.peerat.backend.routes.Leaderboard;
import dev.peerat.backend.routes.PlayerDetails;
import dev.peerat.backend.routes.PuzzleElement;
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.ExceptionLogs;
import dev.peerat.backend.routes.admins.WebHookLeaderboard;
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.admins.puzzle.GetPuzzles;
import dev.peerat.backend.routes.admins.tag.AddTag;
import dev.peerat.backend.routes.admins.tag.DeleteTag;
import dev.peerat.backend.routes.admins.tag.EditTag;
import dev.peerat.backend.routes.admins.tag.GetTags;
import dev.peerat.backend.routes.groups.GroupCreate;
import dev.peerat.backend.routes.groups.GroupJoin;
import dev.peerat.backend.routes.groups.GroupList;
import dev.peerat.backend.routes.groups.GroupQuit;
import dev.peerat.backend.routes.users.ChangePassword;
import dev.peerat.backend.routes.users.ForgotPassword;
import dev.peerat.backend.routes.users.Login;
import dev.peerat.backend.routes.users.MailConfirmation;
import dev.peerat.backend.routes.users.ProfileSettings;
import dev.peerat.backend.routes.users.Register;
import dev.peerat.backend.utils.Mail;
import dev.peerat.framework.Context;
import dev.peerat.framework.DependencyInjector;
import dev.peerat.framework.HttpReader;

View file

@ -0,0 +1,62 @@
package dev.peerat.backend.routes.admins;
import static dev.peerat.framework.RequestType.DELETE;
import static dev.peerat.framework.RequestType.POST;
import static dev.peerat.framework.RequestType.PUT;
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.Route;
import dev.peerat.framework.utils.json.JsonMap;
public class ChapterController{
private DatabaseRepository repo;
public ChapterController(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/chapter/(\\d+)$", needLogin = true)
public void get(Matcher matcher, Context context, 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");
}
@Route(path = "^/admin/chapter/$", type = POST, needLogin = true)
public void add(Context context, HttpReader reader) 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")));
performAction(context, repo.adminAddChapter(chapter));
}
@Route(path = "^/admin/chapter/(\\d+)$", type = PUT, needLogin = true)
public void edit(Matcher matcher, Context context, HttpReader reader) 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")));
performAction(context, repo.adminUpdateChapter(Integer.parseInt(matcher.group(1)), chapter));
}
@Route(path = "^/admin/chapter/(\\d+)$", type = DELETE, needLogin = true)
public void delete(Matcher matcher, Context context) throws Exception{
performAction(context, this.repo.adminDeleteChapter(Integer.parseInt(matcher.group(1))));
}
private void performAction(Context context, boolean result) throws Exception{
context.response(result ? 200 : 501);
}
}

View file

@ -0,0 +1,80 @@
package dev.peerat.backend.routes.admins;
import static dev.peerat.framework.RequestType.DELETE;
import static dev.peerat.framework.RequestType.POST;
import static dev.peerat.framework.RequestType.PUT;
import java.util.List;
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.Route;
import dev.peerat.framework.utils.json.JsonArray;
import dev.peerat.framework.utils.json.JsonMap;
public class PuzzleController{
private DatabaseRepository repo;
public PuzzleController(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/puzzles/$", needLogin = true)
public void gets(Context context, HttpWriter writer) throws Exception{
List<Puzzle> puzzles = repo.getAdminPuzzles();
JsonArray array = new JsonArray();
for (Puzzle puzzle : puzzles){
JsonMap puzzleJSON = new JsonMap();
puzzleJSON.set("id", puzzle.getId());
puzzleJSON.set("name", puzzle.getName());
puzzleJSON.set("scoreMax", puzzle.getScoreMax());
if(puzzle.getTags() != null) puzzleJSON.set("tags", puzzle.getJsonTags());
puzzleJSON.set("show", puzzle.hasStarted());
array.add(puzzleJSON);
}
context.response(200);
writer.write(array.toString());
}
@Route(path = "^/admin/puzzle/(\\d+)$", needLogin = true)
public void get(Matcher matcher, Context context, 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", new String(puzzle.getSoluce()));
json.set("score_max", puzzle.getScoreMax());
context.response(200);
writer.write(json.toString()+"\n");
}
@Route(path = "^/admin/puzzle/$", type = POST, needLogin = true)
public void add(Context context, HttpReader reader) throws Exception{
JsonMap json = reader.readJson();
Puzzle puzzle = new Puzzle(-1, json.get("name"), json.get("content"), json.<String>get("soluce").getBytes(), null, json.<Long>get("scoreMax").intValue(), null, -1, null);
performAction(context, repo.adminAddPuzzle(puzzle, json.<Long>get("chapter").intValue()));
}
@Route(path = "^/admin/puzzle/(\\d+)$", type = PUT, needLogin = true)
public void edit(Matcher matcher, Context context, HttpReader reader) throws Exception{
JsonMap json = reader.readJson();
Puzzle puzzle = new Puzzle(-1, json.get("name"), json.get("content"), json.<String>get("soluce").getBytes(), null, json.<Long>get("scoreMax").intValue(), null, -1, null);
performAction(context, repo.adminUpdatePuzzle(Integer.parseInt(matcher.group(1)), puzzle, json.<Long>get("chapter").intValue()));
}
@Route(path = "^/admin/puzzle/(\\d+)$", type = DELETE, needLogin = true)
public void delete(Matcher matcher, Context context) throws Exception{
performAction(context, this.repo.adminDeletePuzzle(Integer.parseInt(matcher.group(1))));
}
private void performAction(Context context, boolean result) throws Exception{
context.response(result ? 200 : 501);
}
}

View file

@ -0,0 +1,58 @@
package dev.peerat.backend.routes.admins;
import static dev.peerat.framework.RequestType.DELETE;
import static dev.peerat.framework.RequestType.POST;
import static dev.peerat.framework.RequestType.PUT;
import java.sql.Timestamp;
import java.util.List;
import java.util.regex.Matcher;
import dev.peerat.backend.model.Chapter;
import dev.peerat.backend.model.Tag;
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.Route;
import dev.peerat.framework.utils.json.JsonArray;
import dev.peerat.framework.utils.json.JsonMap;
public class TagController{
private DatabaseRepository repo;
public TagController(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/tag/$", needLogin = true)
public void get(Context context, HttpWriter writer) throws Exception{
List<Tag> list = repo.getAdminTags();
JsonArray json = new JsonArray();
for(Tag tag : list) json.add(tag.toJson());
context.response(200);
writer.write(json.toString());
writer.flush();
}
@Route(path = "^/admin/tag/$", type = POST, needLogin = true)
public void add(Context context, HttpReader reader) throws Exception{
performAction(context, repo.adminAddTag(reader.<JsonMap>readJson().get("name")));
}
@Route(path = "^/admin/tag/(\\d+)$", type = PUT, needLogin = true)
public void edit(Matcher matcher, Context context, HttpReader reader) throws Exception{
performAction(context, repo.adminUpdateTag(new Tag(Integer.parseInt(matcher.group(1)), reader.<JsonMap>readJson().get("name"))));
}
@Route(path = "^/admin/tag/(\\d+)$", type = DELETE, needLogin = true)
public void delete(Matcher matcher, Context context) throws Exception{
performAction(context, this.repo.adminDeleteTag(Integer.parseInt(matcher.group(1))));
}
private void performAction(Context context, boolean result) throws Exception{
context.response(result ? 200 : 501);
}
}

View file

@ -1,36 +0,0 @@
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")));
if(repo.adminAddChapter(chapter)){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,31 +0,0 @@
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{
if(this.repo.adminDeleteChapter(Integer.parseInt(matcher.group(1)))){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,37 +0,0 @@
package dev.peerat.backend.routes.admins.chapter;
import static dev.peerat.framework.RequestType.PUT;
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 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();
Chapter chapter = new Chapter(-1, json.get("name"), Timestamp.valueOf(json.<String>get("start")), Timestamp.valueOf(json.<String>get("end")));
if(repo.adminUpdateChapter(Integer.parseInt(matcher.group(1)), chapter)){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,34 +0,0 @@
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");
}
}

View file

@ -1,35 +0,0 @@
package dev.peerat.backend.routes.admins.puzzle;
import static dev.peerat.framework.RequestType.POST;
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 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();
Puzzle puzzle = new Puzzle(-1, json.get("name"), json.get("content"), json.<String>get("soluce").getBytes(), null, json.<Long>get("scoreMax").intValue(), null, -1, null);
if(repo.adminAddPuzzle(puzzle, json.<Long>get("chapter").intValue())){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,32 +0,0 @@
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{
if(this.repo.adminDeletePuzzle(Integer.parseInt(matcher.group(1)))){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,35 +0,0 @@
package dev.peerat.backend.routes.admins.puzzle;
import static dev.peerat.framework.RequestType.PUT;
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 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();
Puzzle puzzle = new Puzzle(-1, json.get("name"), json.get("content"), json.<String>get("soluce").getBytes(), null, json.<Long>get("scoreMax").intValue(), null, -1, null);
if(repo.adminUpdatePuzzle(Integer.parseInt(matcher.group(1)), puzzle, json.<Long>get("chapter").intValue())){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,35 +0,0 @@
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", new String(puzzle.getSoluce()));
json.set("score_max", puzzle.getScoreMax());
context.response(200);
writer.write(json.toString()+"\n");
}
}

View file

@ -1,41 +0,0 @@
package dev.peerat.backend.routes.admins.puzzle;
import java.util.List;
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.JsonArray;
import dev.peerat.framework.utils.json.JsonMap;
public class GetPuzzles implements Response{
private DatabaseRepository repo;
public GetPuzzles(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/puzzles/$", needLogin = true)
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
List<Puzzle> puzzles = repo.getAdminPuzzles();
JsonArray array = new JsonArray();
for (Puzzle puzzle : puzzles){
JsonMap puzzleJSON = new JsonMap();
puzzleJSON.set("id", puzzle.getId());
puzzleJSON.set("name", puzzle.getName());
puzzleJSON.set("scoreMax", puzzle.getScoreMax());
if(puzzle.getTags() != null) puzzleJSON.set("tags", puzzle.getJsonTags());
puzzleJSON.set("show", puzzle.hasStarted());
array.add(puzzleJSON);
}
context.response(200);
writer.write(array.toString());
}
}

View file

@ -1,33 +0,0 @@
package dev.peerat.backend.routes.admins.tag;
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 AddTag implements Response{
private DatabaseRepository repo;
public AddTag(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/tag/$", type = POST, needLogin = true)
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
JsonMap json = reader.readJson();
if(repo.adminAddTag(json.get("name"))){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,31 +0,0 @@
package dev.peerat.backend.routes.admins.tag;
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 DeleteTag implements Response{
private DatabaseRepository repo;
public DeleteTag(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/tag/(\\d+)$", type = DELETE, needLogin = true)
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
if(this.repo.adminDeleteTag(Integer.parseInt(matcher.group(1)))){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,34 +0,0 @@
package dev.peerat.backend.routes.admins.tag;
import static dev.peerat.framework.RequestType.PUT;
import java.util.regex.Matcher;
import dev.peerat.backend.model.Tag;
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 EditTag implements Response{
private DatabaseRepository repo;
public EditTag(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/tag/(\\d+)$", type = PUT, needLogin = true)
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
JsonMap json = reader.readJson();
if(repo.adminUpdateTag(new Tag(Integer.parseInt(matcher.group(1)), json.get("name")))){
context.response(200);
}else{
context.response(501);
}
}
}

View file

@ -1,33 +0,0 @@
package dev.peerat.backend.routes.admins.tag;
import java.util.List;
import java.util.regex.Matcher;
import dev.peerat.backend.model.Tag;
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.JsonArray;
public class GetTags implements Response{
private DatabaseRepository repo;
public GetTags(DatabaseRepository repo){
this.repo = repo;
}
@Route(path = "^/admin/tag/$", needLogin = true)
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{
List<Tag> list = repo.getAdminTags();
JsonArray json = new JsonArray();
for(Tag tag : list) json.add(tag.toJson());
context.response(200);
writer.write(json.toString());
writer.flush();
}
}