aboutsummaryrefslogtreecommitdiffstats
path: root/src/web/leagues/create.zig
diff options
context:
space:
mode:
authorsadbeast <sadbeast@sadbeast.com>2024-06-23 15:36:59 -0700
committersadbeast <sadbeast@sadbeast.com>2024-07-13 21:58:23 -0700
commit8d018d996c1eddb882dc64ebbd228bb0135944f3 (patch)
treed01956546a77dbae33357c9a5d174f511ac9b282 /src/web/leagues/create.zig
downloadteamdraft-8d018d996c1eddb882dc64ebbd228bb0135944f3.tar.gz
teamdraft-8d018d996c1eddb882dc64ebbd228bb0135944f3.tar.bz2
Diffstat (limited to 'src/web/leagues/create.zig')
-rw-r--r--src/web/leagues/create.zig78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/web/leagues/create.zig b/src/web/leagues/create.zig
new file mode 100644
index 0000000..66352cc
--- /dev/null
+++ b/src/web/leagues/create.zig
@@ -0,0 +1,78 @@
+const League = struct {
+ name: []const u8,
+};
+
+const LeaguePickScore = struct {
+ league_id: i32,
+ team: []const u8,
+ player: []const u8,
+ win: i32,
+ playoffs: ?i16,
+ divisional: ?i16,
+ conference: ?i16,
+ superbowl: ?i16,
+ champion: ?i16,
+ total: i32,
+};
+
+const PlayerScore = struct {
+ league_id: i32,
+ player: []const u8,
+ score: i32,
+};
+
+pub fn handler(env: *Env, req: *httpz.Request, res: *httpz.Response) !void {
+ if (req.params.get("id")) |league_id| {
+ var league: League = undefined;
+ const league_query =
+ \\SELECT name FROM leagues WHERE league_id = $1
+ ;
+ {
+ const row = try env.app.pool.row(league_query, .{league_id});
+ if (row) |r| {
+ league = try r.to(League, .{});
+ }
+ }
+
+ const scores_query =
+ \\SELECT * FROM league_pick_scores WHERE league_id = $1
+ ;
+ var scores_result = try env.app.pool.query(scores_query, .{league_id});
+ defer scores_result.deinit();
+
+ var scores: [32]LeaguePickScore = undefined;
+ {
+ var i: u8 = 0;
+ while (try scores_result.next()) |row| : (i += 1) {
+ const score = try row.to(LeaguePickScore, .{});
+ scores[i] = score;
+ }
+ }
+
+ const player_scores_query =
+ \\SELECT * FROM player_scores WHERE league_id = $1
+ ;
+ var player_scores_result = try env.app.pool.query(player_scores_query, .{league_id});
+ defer player_scores_result.deinit();
+
+ var player_scores: [2]PlayerScore = undefined;
+ {
+ var i: u8 = 0;
+ while (try player_scores_result.next()) |row| : (i += 1) {
+ const score = try row.to(PlayerScore, .{});
+ player_scores[i] = score;
+ }
+ }
+
+ try web.renderWithData("league", .{
+ .league = league,
+ .scores = scores,
+ .player_scores = player_scores,
+ }, req, res);
+ }
+}
+
+const httpz = @import("httpz");
+const Env = @import("../../env.zig").Env;
+const web = @import("../../web/web.zig");
+const std = @import("std");