diff --git a/.gitignore b/.gitignore index 12526e8..42a2804 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ yarn-error.log* next-env.d.ts env +/.idea/ \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index b58b603..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/calendrier-avant.iml b/.idea/calendrier-avant.iml deleted file mode 100644 index 24643cc..0000000 --- a/.idea/calendrier-avant.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 7ea0a9f..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/api/me/route.ts b/app/api/me/route.ts new file mode 100644 index 0000000..ef79a32 --- /dev/null +++ b/app/api/me/route.ts @@ -0,0 +1,36 @@ +import {NextRequest, NextResponse} from "next/server"; +import prisma from "@/lib/prisma"; + +export async function GET(req: NextRequest){ + const key = req.nextUrl.searchParams.get("key"); + + if(!key) return NextResponse.json({error: "No key provided"}, {status: 400}); + + const user = await prisma.users.findUnique({ + select: { + id: true, + firstName: true, + lastName: true, + isTeacher: true, + test: { + select: { + testOn: true + } + } + }, + where: { + key + } + }); + + if(!user) return NextResponse.json({error: "Key not found"}, {status: 404}); + + return NextResponse.json({ + id: user.id, + firstName: user.firstName, + lastName: user.lastName, + isTeacher: user.isTeacher, + testOn: user.test?.testOn + }); + +} diff --git a/app/api/test/route.ts b/app/api/test/route.ts new file mode 100644 index 0000000..ebff42d --- /dev/null +++ b/app/api/test/route.ts @@ -0,0 +1,38 @@ +import {NextRequest, NextResponse} from "next/server"; +import prisma from "@/lib/prisma"; + +export async function GET(req: NextRequest){ + const date = req.nextUrl.searchParams.get("date"); + + const test = await prisma.test.findFirst({ + select: { + id: true, + testOn: true, + testOf: { + select: { + id: true, + firstName: true, + lastName: true, + isTeacher: true + } + } + }, + where: { + testOn: (date ? new Date(date) : new Date()) + } + }); + + if(!test){ + return NextResponse.json({error: "Test not found"}, {status: 404}); + } + + return NextResponse.json({ + id: test.id, + testOn: test.testOn, + testOf: { + firstName: test.testOf.firstName, + lastName: test.testOf.lastName, + isTeacher: test.testOf.isTeacher + } + }); +} diff --git a/app/page.tsx b/app/page.tsx index 99e9c00..0882eef 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,12 +1,18 @@ 'use client'; -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; export default function Home() { const [password, setPassword] = useState(''); const router = useRouter(); + useEffect(() => { + if (localStorage.getItem('@password')) { + router.push('/play'); + } + }, [router]); + function handleSubmit(event: React.FormEvent) { event.preventDefault(); @@ -15,9 +21,9 @@ export default function Home() { } return ( - - Calendrier-avent - Please enter the password : + + Calendrier-avent + Merci d'entrer votre clé : setPassword(e.target.value)}> diff --git a/package-lock.json b/package-lock.json index bdbb10a..dd86cdf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ "react-dom": "^18", "socket.io": "^4.7.2", "socket.io-client": "^4.7.2", + "swr": "^2.2.4", "tailwind-merge": "^2.1.0", "tailwindcss-animate": "^1.0.7" }, @@ -4199,6 +4200,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swr": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.4.tgz", + "integrity": "sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==", + "dependencies": { + "client-only": "^0.0.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/tailwind-merge": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.1.0.tgz", @@ -4495,6 +4508,14 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 3f1848b..4a8f613 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "react-dom": "^18", "socket.io": "^4.7.2", "socket.io-client": "^4.7.2", + "swr": "^2.2.4", "tailwind-merge": "^2.1.0", "tailwindcss-animate": "^1.0.7" },
Please enter the password :
Merci d'entrer votre clé :