22 lines
821 B
TypeScript
22 lines
821 B
TypeScript
import { superTokensFunctionMiddleware } from "@/utils/supertokens";
|
|
import { createServerFn } from "@tanstack/react-start";
|
|
import { z } from "zod";
|
|
import { Logger } from "@/lib/logger";
|
|
import brackets from "./utils";
|
|
import { BracketData } from "./types";
|
|
import { toServerResult } from "@/lib/tanstack-query/utils/to-server-result";
|
|
|
|
const logger = new Logger("Bracket Generation");
|
|
|
|
export const previewBracket = createServerFn()
|
|
.inputValidator(z.number())
|
|
.middleware([superTokensFunctionMiddleware])
|
|
.handler(async ({ data: teams }) =>
|
|
toServerResult(async () => {
|
|
logger.info("Generating bracket", teams);
|
|
if (!Object.keys(brackets).includes(teams.toString()))
|
|
throw Error("Bracket not available");
|
|
return brackets[teams as keyof typeof brackets] as BracketData;
|
|
})
|
|
);
|