From 9807d94971c4985d1cbf2364d5a800f6a1585f61 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Mon, 23 Sep 2024 03:42:51 +0200 Subject: [PATCH] Chapter Add|Delete|Edit|Get -> ChapterController --- PeerAtCodeFramework.jar | Bin 542143 -> 543663 bytes .../routes/admins/chapter/AddChapter.java | 36 ---------- .../admins/chapter/ChapterController.java | 62 ++++++++++++++++++ .../routes/admins/chapter/DeleteChapter.java | 31 --------- .../routes/admins/chapter/EditChapter.java | 37 ----------- .../routes/admins/chapter/GetChapter.java | 34 ---------- 6 files changed, 62 insertions(+), 138 deletions(-) delete mode 100644 src/dev/peerat/backend/routes/admins/chapter/AddChapter.java create mode 100644 src/dev/peerat/backend/routes/admins/chapter/ChapterController.java delete mode 100644 src/dev/peerat/backend/routes/admins/chapter/DeleteChapter.java delete mode 100644 src/dev/peerat/backend/routes/admins/chapter/EditChapter.java delete mode 100644 src/dev/peerat/backend/routes/admins/chapter/GetChapter.java diff --git a/PeerAtCodeFramework.jar b/PeerAtCodeFramework.jar index 5eb43e13012559c6973d70cd390acd8fc4337bfa..65636d91a936820a76f4e171897daef9248a9ac9 100644 GIT binary patch delta 33854 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 delta 32352 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 C48pnq diff --git a/src/dev/peerat/backend/routes/admins/chapter/AddChapter.java b/src/dev/peerat/backend/routes/admins/chapter/AddChapter.java deleted file mode 100644 index 84f9dd5..0000000 --- a/src/dev/peerat/backend/routes/admins/chapter/AddChapter.java +++ /dev/null @@ -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.get("start")), Timestamp.valueOf(json.get("end"))); - if(repo.adminAddChapter(chapter)){ - context.response(200); - }else{ - context.response(501); - } - } - -} diff --git a/src/dev/peerat/backend/routes/admins/chapter/ChapterController.java b/src/dev/peerat/backend/routes/admins/chapter/ChapterController.java new file mode 100644 index 0000000..c5e52a3 --- /dev/null +++ b/src/dev/peerat/backend/routes/admins/chapter/ChapterController.java @@ -0,0 +1,62 @@ +package dev.peerat.backend.routes.admins.chapter; + +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.get("start")), Timestamp.valueOf(json.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.get("start")), Timestamp.valueOf(json.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); + } + +} diff --git a/src/dev/peerat/backend/routes/admins/chapter/DeleteChapter.java b/src/dev/peerat/backend/routes/admins/chapter/DeleteChapter.java deleted file mode 100644 index 1097d0a..0000000 --- a/src/dev/peerat/backend/routes/admins/chapter/DeleteChapter.java +++ /dev/null @@ -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); - } - } - -} diff --git a/src/dev/peerat/backend/routes/admins/chapter/EditChapter.java b/src/dev/peerat/backend/routes/admins/chapter/EditChapter.java deleted file mode 100644 index 12c8f6d..0000000 --- a/src/dev/peerat/backend/routes/admins/chapter/EditChapter.java +++ /dev/null @@ -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.get("start")), Timestamp.valueOf(json.get("end"))); - if(repo.adminUpdateChapter(Integer.parseInt(matcher.group(1)), chapter)){ - context.response(200); - }else{ - context.response(501); - } - - } - -} diff --git a/src/dev/peerat/backend/routes/admins/chapter/GetChapter.java b/src/dev/peerat/backend/routes/admins/chapter/GetChapter.java deleted file mode 100644 index 5f71b3f..0000000 --- a/src/dev/peerat/backend/routes/admins/chapter/GetChapter.java +++ /dev/null @@ -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"); - } - -}