TagController
This commit is contained in:
parent
d29f86e116
commit
b6071bcb21
6 changed files with 58 additions and 169 deletions
|
@ -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;
|
||||
|
|
58
src/dev/peerat/backend/routes/admins/TagController.java
Normal file
58
src/dev/peerat/backend/routes/admins/TagController.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue