counts and dockerfiles

This commit is contained in:
2025-09-28 16:57:03 -04:00
parent e6eb2807ae
commit 9bb763a053
19 changed files with 536 additions and 7 deletions

2
api/.dockerignore Normal file
View File

@@ -0,0 +1,2 @@
__pycache__/
*/__pycache__/

8
api/Dockerfile Normal file
View File

@@ -0,0 +1,8 @@
FROM python:3
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["fastapi", "run", "main.py"]

View File

@@ -9,6 +9,7 @@ from routers.baskets import basket_router
from routers.combined import combined_router
from routers.reports import report_router
from routers.backuprestore import backup_router
from routers.counts import counts_router
if argv[1] == "run":
app = FastAPI(title="TAM3 API Server", docs_url=None, redoc_url=None)
@@ -20,4 +21,5 @@ app.include_router(ticket_router)
app.include_router(basket_router)
app.include_router(combined_router)
app.include_router(report_router)
app.include_router(backup_router)
app.include_router(backup_router)
app.include_router(counts_router)

28
api/routers/counts.py Normal file
View File

@@ -0,0 +1,28 @@
from fastapi import APIRouter
from dataclasses import dataclass
from exceptions import bad_key
from repos.template import Repo
from repos.api_keys import ApiKeyRepo
@dataclass
class Count:
prefix: str
total_sold: int
unique_sold: int
class CountRepo(Repo):
def get_counts(self):
self.cur.execute("SELECT * FROM counts")
results = self.cur.fetchall()
return [Count(*r) for r in results]
counts_router = APIRouter(prefix="/api/counts")
@counts_router.get("/")
def get_ticket_counts(api_key: str):
if not ApiKeyRepo().check_api(api_key):
raise bad_key
return CountRepo().get_counts()