feat: 重构 memory 系统,支持 user memory 和 work memory 分离
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends, status
|
||||
|
||||
from schemas.memories.memory_content import UserMemoryContent, WorkProfileContent
|
||||
from v1.memories.dependencies import get_memories_service
|
||||
from v1.memories.schemas import (
|
||||
MemoryListResponse,
|
||||
UserMemoryPartialUpdate,
|
||||
UserMemoryUpdate,
|
||||
WorkMemoryPartialUpdate,
|
||||
WorkMemoryUpdate,
|
||||
)
|
||||
from v1.memories.service import MemoriesService
|
||||
|
||||
router = APIRouter(prefix="/memories", tags=["memories"])
|
||||
|
||||
|
||||
@router.get("", response_model=MemoryListResponse)
|
||||
async def get_all_memories(
|
||||
service: Annotated[MemoriesService, Depends(get_memories_service)],
|
||||
) -> MemoryListResponse:
|
||||
result = await service.get_all_memories()
|
||||
return MemoryListResponse(
|
||||
user_memory=result["user_memory"],
|
||||
work_memory=result["work_memory"],
|
||||
)
|
||||
|
||||
|
||||
@router.get("/user", response_model=UserMemoryContent | None)
|
||||
async def get_user_memory(
|
||||
service: Annotated[MemoriesService, Depends(get_memories_service)],
|
||||
) -> UserMemoryContent | None:
|
||||
return await service.get_user_memory()
|
||||
|
||||
|
||||
@router.get("/work", response_model=WorkProfileContent | None)
|
||||
async def get_work_memory(
|
||||
service: Annotated[MemoriesService, Depends(get_memories_service)],
|
||||
) -> WorkProfileContent | None:
|
||||
return await service.get_work_memory()
|
||||
|
||||
|
||||
@router.put("/user", response_model=UserMemoryContent, status_code=status.HTTP_200_OK)
|
||||
async def update_user_memory(
|
||||
payload: UserMemoryUpdate,
|
||||
service: Annotated[MemoriesService, Depends(get_memories_service)],
|
||||
) -> UserMemoryContent:
|
||||
return await service.update_user_memory(
|
||||
content=payload.content,
|
||||
)
|
||||
|
||||
|
||||
@router.put("/work", response_model=WorkProfileContent, status_code=status.HTTP_200_OK)
|
||||
async def update_work_memory(
|
||||
payload: WorkMemoryUpdate,
|
||||
service: Annotated[MemoriesService, Depends(get_memories_service)],
|
||||
) -> WorkProfileContent:
|
||||
return await service.update_work_memory(
|
||||
content=payload.content,
|
||||
)
|
||||
|
||||
|
||||
@router.patch("/user", response_model=UserMemoryContent)
|
||||
async def patch_user_memory(
|
||||
payload: UserMemoryPartialUpdate,
|
||||
service: Annotated[MemoriesService, Depends(get_memories_service)],
|
||||
) -> UserMemoryContent:
|
||||
return await service.patch_user_memory(
|
||||
content=payload.content,
|
||||
)
|
||||
|
||||
|
||||
@router.patch("/work", response_model=WorkProfileContent)
|
||||
async def patch_work_memory(
|
||||
payload: WorkMemoryPartialUpdate,
|
||||
service: Annotated[MemoriesService, Depends(get_memories_service)],
|
||||
) -> WorkProfileContent:
|
||||
return await service.patch_work_memory(
|
||||
content=payload.content,
|
||||
)
|
||||
Reference in New Issue
Block a user