xbackend/api/api_v1/endpoints/data_mana.py
2021-06-03 09:35:19 +08:00

64 lines
1.8 KiB
Python

import json
from aioredis import Redis
from fastapi import APIRouter, Depends, Request
from motor.motor_asyncio import AsyncIOMotorDatabase
import crud, schemas
from api import deps
from core.config import settings
from db import get_database
from db.ckdb import CKDrive, get_ck_db
from db.redisdb import get_redis_pool
router = APIRouter()
__all__ = 'router',
@router.get("/attr_list")
async def read_data_attr(
request: Request,
game: str,
cat: str,
db: AsyncIOMotorDatabase = Depends(get_database),
rdb: Redis = Depends(get_redis_pool),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""事件属性列表"""
data = await rdb.get(f'{game}_{cat}')
data = json.loads(data)
res = []
data_attr = await crud.data_attr.find_many(db, game=game, cat=cat)
data_attr = {item['name']: item for item in data_attr}
for k, v in data.items():
res.append(
{'name': k,
'data_type': settings.CK_TYPE_DICT.get(v),
'show_name': data_attr.get(k, {}).get('show_name', ''),
'is_show': data_attr.get(k, {}).get('is_show', True),
'attr_type': '预置属性' if k.startswith('#') else '自定义属性',
'unit': ''
}
)
return schemas.Msg(code=0, msg='ok', data=res)
@router.post("/attr_edit")
async def edit_data_attr(
request: Request,
game: str,
data_in: schemas.DataAttrEdit,
db: AsyncIOMotorDatabase = Depends(get_database),
rdb: Redis = Depends(get_redis_pool),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""编辑事件属性"""
await crud.data_attr.edit_data_attr(db, game, data_in)
return schemas.Msg(code=0, msg='ok', data=data_in)