feat: general:新增、更新的时候更新创建人更新人id
This commit is contained in:
@@ -2,6 +2,7 @@ import json
|
||||
from typing import Literal
|
||||
|
||||
from fastapi import FastAPI
|
||||
from starlette.requests import Request
|
||||
from starlette.responses import JSONResponse
|
||||
|
||||
from app.general.ModuleConfigModule import ModuleConfigModule
|
||||
@@ -13,9 +14,9 @@ def add_general_route(app: FastAPI):
|
||||
types = ['list', 'item', 'insert', 'update', 'delete', 'batch_insert', 'batch_update']
|
||||
for type in types:
|
||||
@app.post("/general/{module}/" + type)
|
||||
async def func(module: str, query_param: dict, session: AsyncSessionDep, type=type):
|
||||
async def func(module: str, query_param: dict, session: AsyncSessionDep, request: Request, type=type):
|
||||
try:
|
||||
result = await perform_general_operation(session=session, module=module, data=query_param, debug_data=[], type=type)
|
||||
result = await perform_general_operation(session=session, module=module, data=query_param, debug_data=[], user=request.state.user, type=type)
|
||||
if "error" in result:
|
||||
return JSONResponse(content=result, status_code=500)
|
||||
else:
|
||||
@@ -29,12 +30,13 @@ async def perform_general_operation(
|
||||
module: str,
|
||||
data: dict,
|
||||
debug_data=None,
|
||||
user=None,
|
||||
type: Literal['list', 'item', 'insert', 'update', 'delete', 'batch_insert', 'batch_update'] = 'query'
|
||||
):
|
||||
if debug_data is None:
|
||||
debug_data = []
|
||||
|
||||
module_query_result = await get_module_config(session, module, debug_data)
|
||||
module_query_result = await get_module_config(session, module, debug_data, user)
|
||||
|
||||
if 'error' in module_query_result:
|
||||
return module_query_result
|
||||
@@ -51,22 +53,22 @@ async def perform_general_operation(
|
||||
}
|
||||
|
||||
if type == 'list':
|
||||
return await sql_service.list(session, data, module_config, debug_data)
|
||||
return await sql_service.list(session, data, module_config, debug_data, user)
|
||||
elif type == 'item':
|
||||
return await sql_service.item(session, data, module_config, debug_data)
|
||||
return await sql_service.item(session, data, module_config, debug_data, user)
|
||||
elif type == 'insert':
|
||||
return await sql_service.insert(session, data, module_config, debug_data)
|
||||
return await sql_service.insert(session, data, module_config, debug_data, user)
|
||||
elif type == 'update':
|
||||
return await sql_service.update(session, data, module_config, debug_data)
|
||||
return await sql_service.update(session, data, module_config, debug_data, user)
|
||||
elif type == 'batch_insert':
|
||||
return await sql_service.batch_insert(session, data, module_config, debug_data)
|
||||
return await sql_service.batch_insert(session, data, module_config, debug_data, user)
|
||||
elif type == 'batch_update':
|
||||
return await sql_service.batch_update(session, data, module_config, debug_data)
|
||||
return await sql_service.batch_update(session, data, module_config, debug_data, user)
|
||||
elif type == 'delete':
|
||||
return await sql_service.delete(session, data, module_config, debug_data)
|
||||
return await sql_service.delete(session, data, module_config, debug_data, user)
|
||||
else:
|
||||
return {"error": f"Can't handle operation type: {type}"}
|
||||
|
||||
|
||||
async def get_module_config(session: AsyncSessionDep, module: str, debug_data=None):
|
||||
return await sql_service.item(session, {"code": module}, ModuleConfigModule, debug_data)
|
||||
async def get_module_config(session: AsyncSessionDep, module: str, debug_data=None, user=None):
|
||||
return await sql_service.item(session, {"code": module}, ModuleConfigModule, debug_data, user)
|
||||
|
||||
Reference in New Issue
Block a user