diff --git a/src/helpers/gemini.helper.ts b/src/helpers/gemini.helper.ts index bfe853e..52b5e9f 100644 --- a/src/helpers/gemini.helper.ts +++ b/src/helpers/gemini.helper.ts @@ -80,9 +80,12 @@ export const parseFindQuery = async (query: string): Promise => { } }); + console.log("response from gemini", response.text()); + const parsedResponse = JSON.parse(response.text()) as FindQuery; const cleanedResponse = { ...parsedResponse }; + return removeNullOrUndefinedProperties(cleanedResponse) as any as FindQuery; } diff --git a/src/pages/api/find/search.ts b/src/pages/api/find/search.ts index 471bc40..2d9f34a 100644 --- a/src/pages/api/find/search.ts +++ b/src/pages/api/find/search.ts @@ -9,11 +9,12 @@ import { and, eq, inArray } from 'drizzle-orm'; import { NextApiRequest, NextApiResponse } from 'next'; export default async function search(req: NextApiRequest, res: NextApiResponse) { - const { query } = req.body; - const currentUser = await getCurrentUser(req); - const parsedQuery = await parseFindQuery(query as string); - const { personIds } = parsedQuery; - const url = ENV.IMMICH_URL + "/api/search/smart"; + try { + const { query } = req.body; + const currentUser = await getCurrentUser(req); + const parsedQuery = await parseFindQuery(query as string); + const { personIds } = parsedQuery; + const url = ENV.IMMICH_URL + "/api/search/smart"; let dbPeople: Person[] = []; if (personIds) { @@ -59,5 +60,9 @@ export default async function search(req: NextApiRequest, res: NextApiResponse) }).catch(err => { res.status(500).json({ error: err.message }); }); + } catch (err: any) { + console.error(err); + res.status(500).json({ error: "Failed to parse query" }); + } } \ No newline at end of file