Spaces:
Running
Running
File size: 1,163 Bytes
7402e0f 7d65af7 7402e0f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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"],
} |