You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

56 lines
2.7 KiB

from typing import List
from fastapi import APIRouter, Depends, Request, UploadFile, File, Query
from sqlalchemy.ext.asyncio import AsyncSession
from config.get_db import get_db
from module_admin.entity.vo.user_vo import CurrentUserModel
from module_admin.entity.vo.dataint_vo import TsmcbPageObject, SaveTsmcbModel
from module_admin.service.login_service import LoginService
from module_admin.service.tsmcb_service import TsmcbService
from utils.response_util import ResponseUtil
from utils.common_util import bytes2file_response
tsmcbController = APIRouter(prefix='/dataint/tsmcb', dependencies=[Depends(LoginService.get_current_user)])
@tsmcbController.get("/list")
async def get_tsmcb_list(request: Request, tsmcb_query: TsmcbPageObject = Depends(TsmcbPageObject.as_query),
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
meta_query_result = await TsmcbService.get_tsmcb_list_services(query_db, tsmcb_query, current_user)
return ResponseUtil.success(data=meta_query_result)
@tsmcbController.post("/save")
async def save_tsmcb(request: Request,
saveTsmcbModel: SaveTsmcbModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
result = await TsmcbService.save_tsmcb(query_db, saveTsmcbModel, current_user)
return ResponseUtil.success(msg=result.message)
@tsmcbController.post("/delete")
async def delete_tsmcb(request: Request,
array: List[str],
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
result = await TsmcbService.delete_tsmcb(query_db, array)
return ResponseUtil.success(msg=result.message)
@tsmcbController.post("/upload")
async def batch_import_tsmcb_data(
request: Request,
file: UploadFile = File(...),
overWrite: bool = Query(alias='overWrite'),
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
batch_import_result = await TsmcbService.batch_import_tsmcb_data(query_db, file, overWrite, current_user)
return ResponseUtil.success(data=batch_import_result)
@tsmcbController.post("/importTemplate")
async def export_tsmcb_template(request: Request, query_db: AsyncSession = Depends(get_db)):
meta_import_template_result = await TsmcbService.get_import_template_services()
return ResponseUtil.streaming(data=bytes2file_response(meta_import_template_result))