25 lines
749 B
Python
25 lines
749 B
Python
from fastapi import APIRouter
|
|
import aiofiles
|
|
import json
|
|
# from async_lru import alru_cache
|
|
import logging
|
|
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
router = APIRouter(prefix='/api/v1', tags=['tariffs'])
|
|
|
|
# @alru_cache(maxsize=1, ttl=86400)
|
|
async def get_tariffs_from_file():
|
|
async with aiofiles.open('data/tariffs.json', 'r', encoding='utf-8') as f:
|
|
content = await f.read()
|
|
data = json.loads(content) # <- блокирующая операция, но с маленьким контентом + кэш
|
|
|
|
# Удаляем squad_uuids
|
|
for tariff in data.get('tariffs', []):
|
|
tariff.pop('squad_uuids', None)
|
|
return data
|
|
|
|
@router.get('/tariffs')
|
|
async def get_tariffs():
|
|
return await get_tariffs_from_file() |