60 lines
1.3 KiB
TypeScript
60 lines
1.3 KiB
TypeScript
"use server"
|
|
import { Genre, Story } from "@prisma/client"
|
|
import prisma from "./db"
|
|
import { revalidatePath } from "next/cache"
|
|
import { redirect } from "next/navigation"
|
|
|
|
export async function createStory(data: Story & { genres: number[] }) {
|
|
"use server"
|
|
const genresArray = data.genres.map((e) => { return { id: e } })
|
|
const res = await prisma.story.create({
|
|
data: {
|
|
title: data.title,
|
|
word_count: data.word_count,
|
|
}
|
|
})
|
|
console.log(res)
|
|
const genresRes = await prisma.story.update({
|
|
where: { id: res.id },
|
|
data: {
|
|
genres: { set: genresArray }
|
|
}
|
|
})
|
|
console.log(genresRes)
|
|
revalidatePath("/story")
|
|
redirect("/story")
|
|
}
|
|
|
|
|
|
export async function createPub(data) {
|
|
"use server"
|
|
const genresArray = data.genres.map(e => { return { id: e } })
|
|
const res = await prisma.pub.create({
|
|
data: {
|
|
title: data.title,
|
|
link: data.link,
|
|
query_after_days: data.query_after_days
|
|
}
|
|
})
|
|
console.log(res)
|
|
const genresRes = await prisma.pub.update({
|
|
where: { id: res.id },
|
|
data:
|
|
{ genres: { set: genresArray } }
|
|
})
|
|
console.log(genresRes)
|
|
revalidatePath("/publication")
|
|
redirect("/publication")
|
|
}
|
|
|
|
|
|
|
|
export async function createSub(data) {
|
|
"use server"
|
|
const res = await prisma.sub.create({ data })
|
|
console.log(res)
|
|
revalidatePath("/submission")
|
|
redirect("/submission")
|
|
|
|
}
|