1
This commit is contained in:
parent
fc5a9a83a3
commit
8666c1fd04
@ -226,3 +226,34 @@ async def edit_role(
|
|||||||
"""
|
"""
|
||||||
res = await crud.role.edit_role(db, date_in)
|
res = await crud.role.edit_role(db, date_in)
|
||||||
return schemas.Msg(code=0, msg='ok', data=res.matched_count)
|
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)
|
@ -239,7 +239,7 @@ async def retention_model(request: Request,
|
|||||||
sql = res['sql']
|
sql = res['sql']
|
||||||
df = await ckdb.query_dataframe(sql)
|
df = await ckdb.query_dataframe(sql)
|
||||||
if len(df) == 0:
|
if len(df) == 0:
|
||||||
return schemas.Msg(code=-1, msg='无数据', data=None)
|
return schemas.Msg(code=0, msg='无数据', data=None)
|
||||||
|
|
||||||
title = f'用户数'
|
title = f'用户数'
|
||||||
date_range = res['date_range']
|
date_range = res['date_range']
|
||||||
|
@ -13,6 +13,12 @@ class CRUDApiList(CRUDBase):
|
|||||||
|
|
||||||
return await self.update_one(db, where, data, upsert=True)
|
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):
|
async def edit_api(self, db: AsyncIOMotorDatabase, data_in: schemas.EditApi):
|
||||||
where = {'_id': data_in.id}
|
where = {'_id': data_in.id}
|
||||||
data = {'$set': data_in.dict(exclude={'id'})}
|
data = {'$set': data_in.dict(exclude={'id'})}
|
||||||
|
@ -12,13 +12,15 @@ class ApiBase(BaseModel):
|
|||||||
desc: str = None
|
desc: str = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class AddApi(ApiBase):
|
class AddApi(ApiBase):
|
||||||
path: str
|
path: str
|
||||||
name: str
|
name: str
|
||||||
desc: str
|
desc: str = None
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateApi(BaseModel):
|
||||||
|
path: str
|
||||||
|
name: str
|
||||||
|
|
||||||
|
|
||||||
class AddApiDB(DBBase, AddApi):
|
class AddApiDB(DBBase, AddApi):
|
||||||
|
Loading…
Reference in New Issue
Block a user