counts and dockerfiles
This commit is contained in:
2
api/.dockerignore
Normal file
2
api/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
||||
__pycache__/
|
||||
*/__pycache__/
|
||||
8
api/Dockerfile
Normal file
8
api/Dockerfile
Normal 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"]
|
||||
@@ -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
28
api/routers/counts.py
Normal 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()
|
||||
Reference in New Issue
Block a user