import { error, json } from '@sveltejs/kit'; import { Prisma } from '@prisma/client'; import z from 'zod'; import prisma from '$lib/prisma.js'; import { superValidate } from 'sveltekit-superforms/server'; import { search_schema } from '$lib/zodValidation.js'; // Search a user's collection export const GET = async ({ url, locals, params, request }) => { // try { // z.parse; // } catch (e) { // console.error(e); // return error(500, { message: 'Something went wrong' }); // } const searchParams = Object.fromEntries(url.searchParams); const q = searchParams?.q || ''; const limit = parseInt(searchParams?.limit) || 10; const skip = parseInt(searchParams?.skip) || 0; const order: Prisma.SortOrder = searchParams?.order || 'asc'; const sort = searchParams?.sort || 'name'; const session = await locals.auth.validate(); console.log('url', url); console.log('username', locals?.user?.id); try { const orderBy = { [sort]: order }; let games = await prisma.game.findMany({ where: { name: { contains: q } }, orderBy: [ { ...orderBy } ], select: { id: true, name: true, thumb_url: true }, skip, take: limit }); if (!games) { throw error(404, { message: 'No games found' }); } return json(games); } catch (e) { console.error(e); throw error(500, { message: 'Something went wrong' }); } };