From 16a3279e5a2a423809b40cf0e517cc549385e3f3 Mon Sep 17 00:00:00 2001 From: aronmal Date: Wed, 16 Aug 2023 01:37:34 +0200 Subject: [PATCH] Fix signin and little changes --- leaky-ships/src/hooks/useSocket.ts | 4 +-- leaky-ships/src/lib/backend/getPinFromBody.ts | 4 +-- leaky-ships/src/lib/backend/logging.ts | 2 +- leaky-ships/src/routes/api/game/[id].ts | 2 +- leaky-ships/src/routes/api/game/create.ts | 2 +- leaky-ships/src/routes/api/game/join.ts | 2 +- leaky-ships/src/routes/api/game/running.ts | 2 +- leaky-ships/src/routes/api/ws.ts | 2 +- leaky-ships/src/routes/signin.tsx | 13 ++++---- leaky-ships/src/routes/start.tsx | 31 ++++++++++--------- leaky-ships/src/types/authjs.d.ts | 9 ++++-- 11 files changed, 38 insertions(+), 35 deletions(-) diff --git a/leaky-ships/src/hooks/useSocket.ts b/leaky-ships/src/hooks/useSocket.ts index 7f62392..732b17c 100644 --- a/leaky-ships/src/hooks/useSocket.ts +++ b/leaky-ships/src/hooks/useSocket.ts @@ -4,7 +4,7 @@ import { createEffect, createMemo, createSignal } from "solid-js" import { useNavigate } from "solid-start" import { socket } from "~/lib/socket" import { GamePropsSchema } from "~/lib/zodSchemas" -// import { isAuthenticated } from "~/routes/start" +import { isAuthenticated } from "~/routes/start" import { GameSettings, PlayerEvent } from "../interfaces/frontend" import { useGameProps } from "./useGameProps" import useIndex from "./useIndex" @@ -155,7 +155,7 @@ function useSocket() { fetch("/api/game/running", { method: "GET", }) - // .then(isAuthenticated) + .then(isAuthenticated) .then((game) => GamePropsSchema.parse(game)) .then((res) => full(res)) .catch((e) => console.log(e)) diff --git a/leaky-ships/src/lib/backend/getPinFromBody.ts b/leaky-ships/src/lib/backend/getPinFromBody.ts index 5010d3a..30d2fdb 100644 --- a/leaky-ships/src/lib/backend/getPinFromBody.ts +++ b/leaky-ships/src/lib/backend/getPinFromBody.ts @@ -6,12 +6,12 @@ const pinBodySchema = z.object({ pin: z.string(), }) -async function getPinFromBody(request: APIEvent["request"]) { +async function getPinFromBody(request: APIEvent["request"]) { try { const body = request.json() const { pin } = pinBodySchema.parse(body) return pin - } catch (err: any) { + } catch { sendError(request, { message: "No pin in request body!", statusCode: 401, diff --git a/leaky-ships/src/lib/backend/logging.ts b/leaky-ships/src/lib/backend/logging.ts index 0bad9ff..d20ce9c 100644 --- a/leaky-ships/src/lib/backend/logging.ts +++ b/leaky-ships/src/lib/backend/logging.ts @@ -1,7 +1,7 @@ import colors, { Color } from "colors" import fs from "fs" import { IncomingMessage } from "http" -import { APIEvent } from "solid-start/api" +import { APIEvent } from "solid-start" colors.enable() diff --git a/leaky-ships/src/routes/api/game/[id].ts b/leaky-ships/src/routes/api/game/[id].ts index 6462c69..c58603b 100644 --- a/leaky-ships/src/routes/api/game/[id].ts +++ b/leaky-ships/src/routes/api/game/[id].ts @@ -10,7 +10,7 @@ interface Data { game: Game } -export async function GET(request: APIEvent["request"]) { +export async function GET({ request }: APIEvent) { const body = request.json() as any //TODO const gameId = body.query.id const session = await getSession(request, authOptions) diff --git a/leaky-ships/src/routes/api/game/create.ts b/leaky-ships/src/routes/api/game/create.ts index 459ffc9..83e2b12 100644 --- a/leaky-ships/src/routes/api/game/create.ts +++ b/leaky-ships/src/routes/api/game/create.ts @@ -6,7 +6,7 @@ import prisma from "~/lib/prisma" import { authOptions } from "~/server/auth" import { composeBody, gameSelects, getAnyRunningGame } from "./running" -export async function POST(request: APIEvent["request"]) { +export async function POST({ request }: APIEvent) { const session = await getSession(request, authOptions) if (!session?.user) { diff --git a/leaky-ships/src/routes/api/game/join.ts b/leaky-ships/src/routes/api/game/join.ts index f93f7a4..d81bad1 100644 --- a/leaky-ships/src/routes/api/game/join.ts +++ b/leaky-ships/src/routes/api/game/join.ts @@ -9,7 +9,7 @@ import prisma from "~/lib/prisma" import { authOptions } from "~/server/auth" import { composeBody, gameSelects } from "./running" -export async function POST(request: APIEvent["request"]) { +export async function POST({ request }: APIEvent) { const session = await getSession(request, authOptions) const pin = await getPinFromBody(request) diff --git a/leaky-ships/src/routes/api/game/running.ts b/leaky-ships/src/routes/api/game/running.ts index cebe765..306fad7 100644 --- a/leaky-ships/src/routes/api/game/running.ts +++ b/leaky-ships/src/routes/api/game/running.ts @@ -123,7 +123,7 @@ export function composeBody( return getPayloadwithChecksum(payload) } -export async function POST({ request }: APIEvent) { +export async function GET({ request }: APIEvent) { const session = await getSession(request, authOptions) if (!session?.user) { diff --git a/leaky-ships/src/routes/api/ws.ts b/leaky-ships/src/routes/api/ws.ts index 81a5c40..7efad93 100644 --- a/leaky-ships/src/routes/api/ws.ts +++ b/leaky-ships/src/routes/api/ws.ts @@ -16,7 +16,7 @@ import { colors.enable() -export async function GET(request: RequestWithSocket) { +export async function GET({ request }: { request: RequestWithSocket }) { if (request.socket.server.io) { logging("Socket is already running " + request.url, ["infoCyan"], request) } else { diff --git a/leaky-ships/src/routes/signin.tsx b/leaky-ships/src/routes/signin.tsx index 4c78fb2..0cb64c1 100644 --- a/leaky-ships/src/routes/signin.tsx +++ b/leaky-ships/src/routes/signin.tsx @@ -39,7 +39,7 @@ const errors: Record = { function Login() { const [email, setEmail] = createSignal("") - const { state } = useSession() + const { latest } = useSession() const navigate = useNavigate() const [searchParams] = useSearchParams() @@ -51,12 +51,11 @@ function Login() { }) createEffect(() => { - if (state === "ready") navigate("/") //TODO + if (latest?.user?.id) navigate("/") }) - function login(provider: "email" | "azure-ad") { - return () => signIn(provider, { email, callbackUrl: "/" }) - } + const login = (provider: "email" | "azure-ad") => + signIn(provider, { email: email(), callbackUrl: "/" }) return (
@@ -96,7 +95,7 @@ function Login() {