(add): Remote API endpoints for ticket search

This commit is contained in:
2026-01-14 17:17:15 -05:00
parent 34f0559709
commit 9067108798
3 changed files with 36 additions and 2 deletions

View File

@@ -2,7 +2,6 @@
from fastapi import FastAPI
from sys import argv
from exceptions import bad_key
from repos.api_keys import ApiKeyRepo
@@ -13,6 +12,7 @@ from routers.combined import combined_router
from routers.reports import report_router
from routers.backuprestore import backup_router
from routers.counts import counts_router
from routers.search import search_router
if argv[1] == "run":
app = FastAPI(title="TAM3 API Server", docs_url=None, redoc_url=None)
@@ -31,4 +31,5 @@ app.include_router(basket_router)
app.include_router(combined_router)
app.include_router(report_router)
app.include_router(backup_router)
app.include_router(counts_router)
app.include_router(counts_router)
app.include_router(search_router)

16
api/repos/search.py Normal file
View File

@@ -0,0 +1,16 @@
from .template import Repo
from .tickets import Ticket
class SearchRepo(Repo):
def SearchTickets(
self, first_name: str = "", last_name: str = "", phone_number: str = ""
):
self.cur.execute(
'SELECT * FROM tickets WHERE first_name LIKE %s AND last_name LIKE %s AND phone_number LIKE %s',
(f"%{first_name}%", f"%{last_name}%", f"%{phone_number}%"),
)
records = self.cur.fetchall()
if not records:
return []
return [Ticket(*r) for r in records]

17
api/routers/search.py Normal file
View File

@@ -0,0 +1,17 @@
from exceptions import bad_key
from fastapi import APIRouter
from repos.api_keys import ApiKeyRepo
from repos.search import SearchRepo
search_router = APIRouter(prefix="/api/search")
@search_router.get("/tickets/")
def search_tickets(
api_key: str, first_name: str = "", last_name: str = "", phone_number: str = ""
):
if not ApiKeyRepo().check_api(api_key):
raise bad_key
return SearchRepo().SearchTickets(
first_name=first_name, last_name=last_name, phone_number=phone_number
)