28 lines
1.3 KiB
Python
28 lines
1.3 KiB
Python
from fastapi import APIRouter
|
|
|
|
from src.errors import Response
|
|
from src.types.weaponmaterialtypes import WeaponMaterialType
|
|
from src.utils import load_index, parse_query_langs, parse_result_lang, load_category, get_file_name
|
|
|
|
weapon_material_types = APIRouter(prefix='/weapon_material_type', tags=['Weapon Material'])
|
|
|
|
|
|
@weapon_material_types.get('/')
|
|
async def get_weapon_material_types(query_field: str = 'names', result_language: str = 'eng') -> Response:
|
|
query_langs = parse_query_langs(result_language)
|
|
response: list[dict[str, list[str]]] = []
|
|
for query_lang in query_langs:
|
|
chars = load_index(query_lang, 'weaponmaterialtypes')
|
|
response.append({query_lang: list(chars[query_field].keys())})
|
|
return Response[list[dict[str, list[str]]]](error=False, response=response)
|
|
|
|
|
|
@weapon_material_types.get('/{query}', response_model_exclude_none=True)
|
|
async def get_weapon_material_type(
|
|
query: str, query_languages: str = 'eng', result_language: str = 'ru'
|
|
) -> Response[WeaponMaterialType]:
|
|
query_langs = parse_query_langs(query_languages)
|
|
result_lang = parse_result_lang(result_language)
|
|
filename = get_file_name(query, 'weaponmaterialtypes', query_langs)
|
|
return Response[WeaponMaterialType](response=load_category(result_lang, 'weaponmaterialtypes', filename))
|