fix/various fixes
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
from app.core.logging import get_logger
|
||||
import uuid
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
|
||||
from app.core.config import settings
|
||||
from app.core.dependencies import get_current_user
|
||||
from app.core.dependencies import get_current_user, get_object_storage
|
||||
from app.core.logging import get_logger
|
||||
from app.features.user.deps import get_user_service
|
||||
from app.features.user.models import User
|
||||
from app.features.user.schemas import (
|
||||
FeedbackResponse,
|
||||
PurgeUserDataRequest,
|
||||
PurgeUserDataResponse,
|
||||
SubmitFeedbackRequest,
|
||||
TestSubscriptionRequest,
|
||||
TestSubscriptionResponse,
|
||||
@@ -16,6 +18,7 @@ from app.features.user.schemas import (
|
||||
UserProfileResponse,
|
||||
)
|
||||
from app.features.user.service import UserService
|
||||
from app.ports.storage import ObjectStorage
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
@@ -66,6 +69,29 @@ async def update_user_profile(
|
||||
return await service.update_profile(current_user.id, body)
|
||||
|
||||
|
||||
@router.post("/data/purge", response_model=PurgeUserDataResponse)
|
||||
async def purge_user_data(
|
||||
body: PurgeUserDataRequest,
|
||||
current_user: User = Depends(get_current_user),
|
||||
service: UserService = Depends(get_user_service),
|
||||
object_storage: ObjectStorage = Depends(get_object_storage),
|
||||
):
|
||||
"""
|
||||
永久删除当前账号下的业务数据:对话与片段、记忆层、故事与插图意图、书籍与章节(含图片任务行)、
|
||||
回忆录状态、订单记录、刷新令牌;并清理会话 Redis 历史、任务追踪与相关分布式锁 key;
|
||||
对 memory_sources / memoir_images / 关联 Asset 中记录的 storage_key 尽力删除对象存储对象。
|
||||
不删除 users 表中的账号(手机号、密码等);口令见请求体 schema 说明。
|
||||
"""
|
||||
try:
|
||||
return await service.purge_all_user_data(
|
||||
current_user.id,
|
||||
confirmation=body.confirmation,
|
||||
object_storage=object_storage,
|
||||
)
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e)) from e
|
||||
|
||||
|
||||
@router.post("/test-subscription", response_model=TestSubscriptionResponse)
|
||||
async def test_subscription(
|
||||
body: TestSubscriptionRequest,
|
||||
|
||||
Reference in New Issue
Block a user