feat: bổ sung phần profile của user

This commit is contained in:
2026-07-22 18:55:25 +07:00
parent c4302da931
commit 0155abd0da
3 changed files with 103 additions and 24 deletions
+28 -1
View File
@@ -6,6 +6,7 @@ from fastapi import APIRouter, UploadFile, File, HTTPException, Query, Depends
from fastapi.responses import FileResponse
from pydantic import BaseModel
from typing import Optional, List
import json
from app.config import settings
from app.api.v1.auth import get_current_user
from app.api.v1.projects import get_optional_user
@@ -67,7 +68,16 @@ async def upload_audio(file: UploadFile = File(...), current_user: Optional[dict
with open(file_path, "wb") as f:
content = await file.read()
f.write(content)
# Save original filename as sidecar metadata
import json
meta_path = os.path.join(settings.UPLOADS_DIR, file_id + ".meta")
try:
with open(meta_path, "w") as mf:
json.dump({"original_name": file.filename}, mf)
except Exception:
pass
# Trigger celery task
from app.tasks.worker import analyze_audio_task
task = analyze_audio_task.delay(file_id)
@@ -357,8 +367,18 @@ async def list_user_files(req: MyFilesRequest, current_user: dict = Depends(get_
if filename in files_map:
files_map[filename]["size_mb"] = round(files_map[filename]["size_mb"] + stat.st_size / (1024 * 1024), 2)
else:
original_name = filename
meta_path = os.path.join(directory, filename + ".meta")
if os.path.isfile(meta_path):
try:
with open(meta_path, "r") as mf:
meta = json.load(mf)
original_name = meta.get("original_name", filename)
except Exception:
pass
files_map[filename] = {
"file_id": filename,
"original_name": original_name,
"size_mb": round(stat.st_size / (1024 * 1024), 2),
"created_at": stat.st_mtime,
"type": type_label,
@@ -390,6 +410,13 @@ async def delete_user_file(file_id: str, current_user: dict = Depends(get_curren
deleted = True
except Exception:
pass
# Clean up sidecar metadata file
meta_path = os.path.join(directory, file_id + ".meta")
if os.path.isfile(meta_path):
try:
os.remove(meta_path)
except Exception:
pass
if not deleted:
raise HTTPException(status_code=404, detail="Không tìm thấy tệp trên server")