const httpz = @import("httpz"); const maps_repo = @import("../repos/maps_repo.zig"); const markers_repo = @import("../repos/markers_repo.zig"); const common = @import("common.zig"); pub fn list(env: *common.Env, _: *httpz.Request, res: *httpz.Response) !void { const maps = try maps_repo.get_maps(res.arena, env.conn); try res.json(maps.items, .{}); } pub fn get(env: *common.Env, req: *httpz.Request, res: *httpz.Response) !void { const id = req.param("id").?; const map = try maps_repo.get_map(res.arena, env.conn, id); try res.json(map, .{}); } const CreateMap = struct { name: []const u8 }; pub fn create(env: *common.Env, req: *httpz.Request, res: *httpz.Response) !void { const payload = try common.with_body(CreateMap, req); const map = try maps_repo.create(res.arena, env.conn, payload.name); try res.json(map, .{}); } const UpdateMap = struct { name: []const u8 }; pub fn update(env: *common.Env, req: *httpz.Request, res: *httpz.Response) !void { const id = req.param("id").?; const payload = try common.with_body(UpdateMap, req); const map = try maps_repo.update(env.conn, id, payload.name); try res.json(map, .{}); } pub fn delete(env: *common.Env, req: *httpz.Request, _: *httpz.Response) !void { const id = req.param("id").?; try markers_repo.delete_by_map_id(env.conn, id); try maps_repo.delete(env.conn, id); }