36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
|
|
from fastapi import APIRouter
|
||
|
|
from repos.combined import Combined, CombinedRepo
|
||
|
|
from repos.api_keys import ApiKeyRepo
|
||
|
|
from exceptions import bad_key
|
||
|
|
|
||
|
|
combined_router = APIRouter(prefix="/api/combined")
|
||
|
|
|
||
|
|
@combined_router.get("/")
|
||
|
|
def get_all_combined(api_key: str) -> list[Combined]:
|
||
|
|
if not ApiKeyRepo().check_api(api_key):
|
||
|
|
raise bad_key
|
||
|
|
return CombinedRepo().get_all()
|
||
|
|
|
||
|
|
@combined_router.get("/{prefix}/")
|
||
|
|
def get_prefix_combined(api_key: str, prefix: str) -> list[Combined]:
|
||
|
|
if not ApiKeyRepo().check_api(api_key):
|
||
|
|
raise bad_key
|
||
|
|
return CombinedRepo().get_prefix_all(prefix)
|
||
|
|
|
||
|
|
@combined_router.get("/{prefix}/{b_id}/")
|
||
|
|
def get_prefix_combined_one(api_key: str, prefix: str, b_id: int) -> Combined:
|
||
|
|
if not ApiKeyRepo().check_api(api_key):
|
||
|
|
raise bad_key
|
||
|
|
return CombinedRepo().get_prefix_one(prefix, b_id)
|
||
|
|
|
||
|
|
@combined_router.get("/{prefix}/{b_from}/{b_to}/")
|
||
|
|
def get_prefix_combined_range(api_key: str, prefix: str, b_from: int, b_to: int) -> list[Combined]:
|
||
|
|
if not ApiKeyRepo().check_api(api_key):
|
||
|
|
raise bad_key
|
||
|
|
return CombinedRepo().get_prefix_range(prefix, b_from, b_to)
|
||
|
|
|
||
|
|
@combined_router.post("/")
|
||
|
|
def post_combined_range(api_key: str, winner_list: list[Combined]):
|
||
|
|
if not ApiKeyRepo().check_api(api_key):
|
||
|
|
raise bad_key
|
||
|
|
return CombinedRepo().post_list(winner_list)
|