From 34f05597097dbd581af2bc253f015249abba65f8 Mon Sep 17 00:00:00 2001 From: Dilan Gilluly Date: Tue, 13 Jan 2026 22:55:59 -0500 Subject: [PATCH] (add): API endpoint for ticket search. Works for local DB, will hash out Remote DB function in next commit. --- .../src/routes/api/search/tickets/+server.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 webapp/src/routes/api/search/tickets/+server.js diff --git a/webapp/src/routes/api/search/tickets/+server.js b/webapp/src/routes/api/search/tickets/+server.js new file mode 100644 index 0000000..c09e77c --- /dev/null +++ b/webapp/src/routes/api/search/tickets/+server.js @@ -0,0 +1,28 @@ +import { readSettings } from "$lib/server/settings"; +import { db } from "$lib/server/db/index.js"; +import { tickets } from "$lib/server/db/schema.js"; +import { and, like, sql } from "drizzle-orm"; + +export async function GET({ url }) { + const env = readSettings(); + const sFirstName = url.searchParams.get("first_name") || "", + sLastName = url.searchParams.get("last_name") || "", + sPhoneNumber = url.searchParams.get("phone_number") || ""; + + if (env.TAM3_REMOTE) { + } else { + const results = await db + .select() + .from(tickets) + .where( + and( + like(tickets.first_name, `%${sFirstName}%`), + like(tickets.last_name, `%${sLastName}%`), + like(tickets.phone_number, `%${sPhoneNumber}%`), + ), + ); + return new Response(JSON.stringify(results), { + headers: { "Content-Type": "application/json" }, + }); + } +}