84 lines
2.6 KiB
Python
84 lines
2.6 KiB
Python
|
|
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,
|
||
|
|
)
|