This commit is contained in:
wuaho 2021-09-09 15:18:57 +08:00
parent fc5a9a83a3
commit 8666c1fd04
4 changed files with 44 additions and 5 deletions

View File

@ -226,3 +226,34 @@ async def edit_role(
"""
res = await crud.role.edit_role(db, date_in)
return schemas.Msg(code=0, msg='ok', data=res.matched_count)
@router.get("/update_api_list")
async def update_api_list(
request: Request,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user),
):
"""更新 api 列表"""
app = request.app
data = {}
for r in app.routes:
title = r.tags[0] if hasattr(r, 'description') else None
if not title:
continue
data.setdefault(title, {'list': []})
path = r.path
name = r.description if hasattr(r, 'description') else r.name
data[title]['list'].append({'api': path, 'title': name})
data = [{'title': k, 'list': v['list']} for k, v in data.items()]
for item in data:
title = item['title']
for l in item['list']:
api = l['api']
name = l['title']
add_data = schemas.UpdateApi(path=api, name=name)
await crud.api_list.update_api(db, add_data)
return schemas.Msg(code=0, msg='ok', data=1)

View File

@ -239,7 +239,7 @@ async def retention_model(request: Request,
sql = res['sql']
df = await ckdb.query_dataframe(sql)
if len(df) == 0:
return schemas.Msg(code=-1, msg='无数据', data=None)
return schemas.Msg(code=0, msg='无数据', data=None)
title = f'用户数'
date_range = res['date_range']

View File

@ -13,6 +13,12 @@ class CRUDApiList(CRUDBase):
return await self.update_one(db, where, data, upsert=True)
async def update_api(self, db: AsyncIOMotorDatabase, data_in: schemas.UpdateApi):
where = {'path': data_in.path}
data = {'$set': data_in.dict()}
return await self.update_one(db, where, data, upsert=True)
async def edit_api(self, db: AsyncIOMotorDatabase, data_in: schemas.EditApi):
where = {'_id': data_in.id}
data = {'$set': data_in.dict(exclude={'id'})}

View File

@ -12,13 +12,15 @@ class ApiBase(BaseModel):
desc: str = None
class AddApi(ApiBase):
path: str
name: str
desc: str
desc: str = None
class UpdateApi(BaseModel):
path: str
name: str
class AddApiDB(DBBase, AddApi):