fixes create to now check for author before creating game system

This commit is contained in:
Emmaline Autumn 2024-08-20 07:51:20 -06:00
parent 729aba68ce
commit 5f2243b49a
2 changed files with 26 additions and 13 deletions

View File

@ -1,11 +1,23 @@
"use server";
import { auth } from "@/auth";
import { prisma } from "@/prisma/prismaClient";
export const createGameSystem = async (name: string) => {
const session = await auth();
if (!session?.user?.id) return null;
const user = await prisma.user.findFirst({
where: { id: session.user.id },
select: { emailVerified: true },
});
if (!user?.emailVerified) return null;
const { id } = await prisma.gameSystem.create({
data: {
name,
authorId: session.user.id,
},
select: {
id: true,

View File

@ -1,19 +1,21 @@
import { prisma } from "@/prisma/prismaClient";
"use client";
import { createGameSystem } from "@/actions/GameSystems/create";
import { useToast } from "@/components/toast";
import { redirect } from "next/navigation";
export default function CreateGameSystem() {
const { createToast } = useToast();
async function create(form: FormData) {
"use server";
const name = form.get("name")?.toString();
if (!name) return;
const { id } = await prisma.gameSystem.create({
data: {
name,
},
select: {
id: true,
},
if (!name)
return createToast({ msg: "Please provide a name", fading: true });
createToast({ msg: "Creating Game System", fading: true });
const id = await createGameSystem(name);
if (!id)
return createToast({
msg: "Issue creating game system. Is your email verified?",
fading: true,
type: "error",
});
redirect(`/game-systems/${id}`);
}
@ -22,7 +24,6 @@ export default function CreateGameSystem() {
<form action={create}>
<input
type="text"
// {...bind}
name="name"
placeholder="Create a new game system..."
className="w-min"