(
data: UpdateFileData,
file_service: FileService = Depends(get_file_service),
)
| 564 | |
| 565 | @admin_api.patch("/file/update") |
| 566 | async def update_file( |
| 567 | data: UpdateFileData, |
| 568 | file_service: FileService = Depends(get_file_service), |
| 569 | ): |
| 570 | file_code = await FileCodes.filter(id=data.id).first() |
| 571 | if not file_code: |
| 572 | raise HTTPException(status_code=404, detail="文件不存在") |
| 573 | target_name = file_service._build_file_activity_name(file_code) |
| 574 | update_data = {} |
| 575 | |
| 576 | if data.code is not None and data.code != file_code.code: |
| 577 | # 判断code是否存在 |
| 578 | if await FileCodes.filter(code=data.code).first(): |
| 579 | raise HTTPException(status_code=400, detail="code已存在") |
| 580 | update_data["code"] = data.code |
| 581 | if data.prefix is not None and data.prefix != file_code.prefix: |
| 582 | update_data["prefix"] = data.prefix |
| 583 | if data.suffix is not None and data.suffix != file_code.suffix: |
| 584 | update_data["suffix"] = data.suffix |
| 585 | if ( |
| 586 | data.expired_at is not None |
| 587 | and data.expired_at != "" |
| 588 | and data.expired_at != file_code.expired_at |
| 589 | ): |
| 590 | update_data["expired_at"] = data.expired_at |
| 591 | if data.expired_count is not None and data.expired_count != file_code.expired_count: |
| 592 | update_data["expired_count"] = data.expired_count |
| 593 | |
| 594 | await file_code.update_from_dict(update_data).save() |
| 595 | if update_data: |
| 596 | await file_service.record_admin_activity( |
| 597 | action="file.update", |
| 598 | target_type="file", |
| 599 | target_id=data.id, |
| 600 | target_name=target_name, |
| 601 | count=1, |
| 602 | meta={"fields": sorted(update_data.keys())}, |
| 603 | ) |
| 604 | return APIResponse(detail="更新成功") |
nothing calls this directly
no test coverage detected