Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import { json, type RequestEvent } from '@sveltejs/kit'; | |
import { tokenIsAvailable } from '$lib/utils'; | |
import prisma from '$lib/prisma'; | |
/** @type {import('./$types').RequestHandler} */ | |
export async function POST({ cookies, request, params } : RequestEvent) { | |
const id = params.id?.replace("@", "/") | |
const model = await prisma.model.findFirst({ | |
where: { | |
id, | |
}, | |
}) | |
if (!model) { | |
return json({ | |
error: "Model not found", | |
}, { status: 404 }) | |
} | |
const token = cookies.get('hf_access_token') | |
if (!token) { | |
return json({ | |
error: "You must be logged", | |
}, { status: 401 }) | |
} | |
const is_token_available = await tokenIsAvailable(token) | |
if (!is_token_available) { | |
return json({ | |
error: "Invalid token", | |
}, { status: 401 }) | |
} | |
// check if user has already comment this model twice | |
const total_comments = await prisma.comment.count({ | |
where: { | |
modelId: model.id, | |
userId: is_token_available.sub, | |
} | |
}) | |
if (total_comments >= 2) { | |
return json({ | |
error: "You have already comment this model twice", | |
}, { status: 401 }) | |
} | |
const { text } = await request.json() | |
if (!text || text.length < 3) { | |
return json({ | |
error: "Text must be at least 10 characters", | |
}, { status: 400 }) | |
} | |
const comment = await prisma.comment.create({ | |
data: { | |
text, | |
user: { | |
connect: { | |
sub: is_token_available.sub | |
} | |
}, | |
model: { | |
connect: { | |
id | |
} | |
} | |
}, | |
select: { | |
id: true, | |
text: true, | |
createdAt: true, | |
user: { | |
select: { | |
name: true, | |
picture: true, | |
sub: true, | |
} | |
} | |
} | |
}) | |
return json({ | |
success: true, | |
comment | |
}) | |
} | |