package dev.peerat.backend.routes.admins.puzzle; import java.util.List; import java.util.regex.Matcher; import dev.peerat.backend.model.Puzzle; 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; import dev.peerat.framework.utils.json.JsonMap; public class GetPuzzles implements Response{ private DatabaseRepository repo; public GetPuzzles(DatabaseRepository repo){ this.repo = repo; } @Route(path = "^/admin/puzzles/$", needLogin = true) public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{ List puzzles = repo.getAdminPuzzles(); JsonArray array = new JsonArray(); for (Puzzle puzzle : puzzles){ JsonMap puzzleJSON = new JsonMap(); puzzleJSON.set("id", puzzle.getId()); puzzleJSON.set("name", puzzle.getName()); puzzleJSON.set("scoreMax", puzzle.getScoreMax()); if(puzzle.getTags() != null) puzzleJSON.set("tags", puzzle.getJsonTags()); puzzleJSON.set("show", puzzle.hasStarted()); array.add(puzzleJSON); } context.response(200); writer.write(array.toString()); } }