diff --git a/PeerAtCodeFramework.jar b/PeerAtCodeFramework.jar index 5eb43e1..65636d9 100644 Binary files a/PeerAtCodeFramework.jar and b/PeerAtCodeFramework.jar differ 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"); - } - -}