Chapter Add|Delete|Edit|Get -> ChapterController

This commit is contained in:
jeffcheasey88 2024-09-23 03:42:51 +02:00
parent 5f02e31507
commit 9807d94971
6 changed files with 62 additions and 138 deletions

Binary file not shown.

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

@ -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.<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

@ -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");
}
}