from fastapi import APIRouter, UploadFile, File, Response from ..controllers.user_controller import * from fastapi import Depends from sqlalchemy.orm import Session from ..dependencies.database import get_db router = APIRouter() #用户创建接口 @router.post('/users', response_model=UserCrateResponse) async def create_user(user: UserCrateRequest,db: Session = Depends(get_db)): response = await create_user_handler(user,db) return response #用户更新接口 @router.put('/users/{user_id}', response_model=UserUpdateResponse) async def update_user(user_id: int, user: UserUpdateRequest, db: Session = Depends(get_db)): response = await update_user_handler(user_id, user, db) return response #用户删除接口 @router.delete('/users/{user_id}', response_model=UserDeleteResponse) async def delete_user(user_id: int, db: Session = Depends(get_db)): response = await delete_user_handler(user_id, db) return response #用户查询接口 @router.get('/users/{user_id}', response_model=UserQueryResponse) async def get_user(user_id: int, db: Session = Depends(get_db)): response = await get_user_handler(user_id, db) return response #硬件绑定接口 @router.post('/users/hardware',response_model=HardwareBindResponse) async def bind_hardware(hardware: HardwareBindRequest, db: Session = Depends(get_db)): response = await bind_hardware_handler(hardware, db) return response #硬件解绑接口 @router.delete('/users/hardware/{hardware_id}',response_model=HardwareUnbindResponse) async def unbind_hardware(hardware_id: int, db: Session = Depends(get_db)): response = await unbind_hardware_handler(hardware_id, db) return response #硬件换绑 @router.put('/users/hardware/{hardware_id}/bindchange',response_model=HardwareChangeBindResponse) async def change_bind_hardware(hardware_id: int, user: HardwareChangeBindRequest, db: Session = Depends(get_db)): response = await change_bind_hardware_handler(hardware_id, user, db) return response #硬件信息更新 @router.put('/users/hardware/{hardware_id}/info',response_model=HardwareUpdateResponse) async def update_hardware_info(hardware_id: int, hardware: HardwareUpdateRequest, db: Session = Depends(get_db)): response = await update_hardware_handler(hardware_id, hardware, db) return response #硬件查询 @router.get('/users/hardware/{hardware_id}',response_model=HardwareQueryResponse) async def get_hardware(hardware_id: int, db: Session = Depends(get_db)): response = await get_hardware_handler(hardware_id, db) return response #用户音频上传 @router.post('/users/audio',response_model=AudioUploadResponse) async def upload_audio(user_id:int, audio_file:UploadFile=File(...), db: Session = Depends(get_db)): response = await upload_audio_handler(user_id, audio_file, db) return response #用户音频修改 @router.put('/users/audio/{audio_id}',response_model=AudioUpdateResponse) async def update_audio(audio_id:int, audio_file:UploadFile=File(...), db: Session = Depends(get_db)): response = await update_audio_handler(audio_id, audio_file, db) return response #用户音频下载 @router.get('/users/audio/{audio_id}') async def download_audio(audio_id:int, db: Session = Depends(get_db)): audio_data = await download_audio_handler(audio_id, db) return Response(content=audio_data,media_type='application/octet-stream',headers={"Content-Disposition": "attachment"}) #用户音频删除 @router.delete('/users/audio/{audio_id}',response_model=AudioDeleteResponse) async def delete_audio(audio_id:int, db: Session = Depends(get_db)): response = await delete_audio_handler(audio_id, db) return response #用户绑定音频 @router.post('/users/audio/bind',response_model=AudioBindResponse) async def bind_audio(bind_req:AudioBindRequest, db: Session = Depends(get_db)): response = await bind_audio_handler(bind_req, db) return response