NoteServicesAPI / app /api /notes /notes_text.py
bichnhan2701's picture
Update server logic
7d65af7
from fastapi import APIRouter, BackgroundTasks
from pydantic import BaseModel
from typing import List, Optional
from app.services.note_store import create_note
from app.jobs.async_enrichment_job import enrich_note
from app.models.enums import NoteType, NoteStatus
from app.utils.id import new_id
from app.utils.time import now_ts
router = APIRouter(prefix="/notes", tags=["notes"])
class CreateTextNoteRequest(BaseModel):
raw_text: str
folder_id: Optional[str] = None
generate: List[str] = []
@router.post("/text")
async def create_text_note(req: CreateTextNoteRequest, bg: BackgroundTasks):
note_id = new_id()
now = now_ts()
has_enrichment = bool(req.generate)
note = {
"note_id": note_id,
"type": NoteType.text,
"raw_text": req.raw_text,
"folder_id": req.folder_id,
"status": NoteStatus.processing if has_enrichment else NoteStatus.created,
"created_at": now,
"updated_at": now,
}
create_note(note)
if has_enrichment:
bg.add_task(enrich_note, note_id, req.generate)
return {
"note_id": note_id,
"status": note["status"],
}