Spaces:
Runtime error
Runtime error
| /** @type {import('./$types').RequestHandler} */ | |
| import { UploaderDataset } from '$lib/utils/uploader'; | |
| // import { uploadImage } from '$lib/utils/upload_image'; | |
| import { json, type RequestEvent } from '@sveltejs/kit'; | |
| import prisma from '$lib/prisma'; | |
| import { tokenIsAvailable } from '$lib/utils'; | |
| export async function POST({ request, cookies } : RequestEvent) { | |
| const { generation, image } = await request.json() | |
| const token = cookies.get('hf_access_token') | |
| let hf_user_id = null; | |
| if (token) { | |
| const user = await tokenIsAvailable(token) | |
| if (user) hf_user_id = user?.sub; | |
| } | |
| if (!generation?.model?.id) { | |
| return json({ | |
| error: { | |
| token: "A model id is required" | |
| } | |
| }, { status: 400 }) | |
| } | |
| if (!generation?.inputs) { | |
| return json({ | |
| error: { | |
| token: "An inputs is required" | |
| } | |
| }, { status: 400 }) | |
| } | |
| const blob = await fetch(image) | |
| .then((res) => res.blob()) | |
| .then((blob) => blob) | |
| .catch((error) => { | |
| return json({ | |
| error: error.message, | |
| }, { status: 400 }) | |
| }) | |
| // const success = await uploadImage({ | |
| // name: generation.inputs, | |
| // data: image | |
| // }) | |
| // console.log(success) | |
| const success: { | |
| ok: boolean, | |
| path?: string | undefined | |
| } = await UploaderDataset(blob as Blob, generation.inputs) | |
| if (!success.ok) { | |
| return json({ | |
| error: { | |
| token: "Error uploading image" | |
| } | |
| }, { status: 400 }) | |
| } | |
| const gallery = prisma.gallery.create({ | |
| data: { | |
| image: success.path as string, | |
| prompt: generation.inputs, | |
| user: { | |
| connect: { | |
| sub: hf_user_id | |
| } | |
| }, | |
| model: { | |
| connect: { | |
| id: generation.model.id | |
| } | |
| }, | |
| } | |
| }) | |
| .catch((error) => { | |
| console.log(error) | |
| }) | |
| return json({ | |
| message: "Successfully generated image", | |
| gallery | |
| }) | |
| } | |