(add): API endpoint for ticket search. Works for local DB, will hash out
Remote DB function in next commit.
This commit is contained in:
28
webapp/src/routes/api/search/tickets/+server.js
Normal file
28
webapp/src/routes/api/search/tickets/+server.js
Normal file
@@ -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" },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user