From b6071bcb215fd3be8c0ff99f0d094cc38e2913e0 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Mon, 23 Sep 2024 03:56:36 +0200 Subject: [PATCH] TagController --- src/dev/peerat/backend/Main.java | 38 ------------ .../backend/routes/admins/TagController.java | 58 +++++++++++++++++++ .../backend/routes/admins/tag/AddTag.java | 33 ----------- .../backend/routes/admins/tag/DeleteTag.java | 31 ---------- .../backend/routes/admins/tag/EditTag.java | 34 ----------- .../backend/routes/admins/tag/GetTags.java | 33 ----------- 6 files changed, 58 insertions(+), 169 deletions(-) create mode 100644 src/dev/peerat/backend/routes/admins/TagController.java delete mode 100644 src/dev/peerat/backend/routes/admins/tag/AddTag.java delete mode 100644 src/dev/peerat/backend/routes/admins/tag/DeleteTag.java delete mode 100644 src/dev/peerat/backend/routes/admins/tag/EditTag.java delete mode 100644 src/dev/peerat/backend/routes/admins/tag/GetTags.java diff --git a/src/dev/peerat/backend/Main.java b/src/dev/peerat/backend/Main.java index a5790a2..db9d57f 100644 --- a/src/dev/peerat/backend/Main.java +++ b/src/dev/peerat/backend/Main.java @@ -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; diff --git a/src/dev/peerat/backend/routes/admins/TagController.java b/src/dev/peerat/backend/routes/admins/TagController.java new file mode 100644 index 0000000..06379de --- /dev/null +++ b/src/dev/peerat/backend/routes/admins/TagController.java @@ -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 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.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.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); + } + +} diff --git a/src/dev/peerat/backend/routes/admins/tag/AddTag.java b/src/dev/peerat/backend/routes/admins/tag/AddTag.java deleted file mode 100644 index 8df16dd..0000000 --- a/src/dev/peerat/backend/routes/admins/tag/AddTag.java +++ /dev/null @@ -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); - } - } - -} diff --git a/src/dev/peerat/backend/routes/admins/tag/DeleteTag.java b/src/dev/peerat/backend/routes/admins/tag/DeleteTag.java deleted file mode 100644 index 84d92a0..0000000 --- a/src/dev/peerat/backend/routes/admins/tag/DeleteTag.java +++ /dev/null @@ -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); - } - } - -} diff --git a/src/dev/peerat/backend/routes/admins/tag/EditTag.java b/src/dev/peerat/backend/routes/admins/tag/EditTag.java deleted file mode 100644 index 08c265e..0000000 --- a/src/dev/peerat/backend/routes/admins/tag/EditTag.java +++ /dev/null @@ -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); - } - } - -} diff --git a/src/dev/peerat/backend/routes/admins/tag/GetTags.java b/src/dev/peerat/backend/routes/admins/tag/GetTags.java deleted file mode 100644 index aa14b43..0000000 --- a/src/dev/peerat/backend/routes/admins/tag/GetTags.java +++ /dev/null @@ -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 list = repo.getAdminTags(); - JsonArray json = new JsonArray(); - for(Tag tag : list) json.add(tag.toJson()); - context.response(200); - writer.write(json.toString()); - writer.flush(); - } - -}