/Notas

API Reference

Notas

Notas são documentos rich-text editados com o Tiptap. O conteúdo é armazenado no formato JSON do Tiptap e suporta links entre notas via linkedTo / linkedFrom.

GET /api/notes

Retorna todas as notas do workspace (metadados, sem conteúdo completo).

Resposta 200

{
  id: string;
  title: string;
  icon: string | null;
  collectionId: string | null;
  createdAt: string;
  updatedAt: string;
}[]

POST /api/notes

Cria uma nova nota com conteúdo vazio.

Corpo da requisição

CampoTipoDescrição
title*stringTítulo da nota
iconstringEmoji ou identificador de ícone
collectionIdstringID da coleção de notas

Resposta 201

{
  message: "Note created successfully";
  note: {
    id: string;
    title: string;
    icon: string | null;
    collectionId: string | null;
    content: { type: "doc"; content: [] }; // Tiptap JSON inicial
    userId: string;
    workspaceId: string;
    createdAt: string;
    updatedAt: string;
  };
}

GET /api/notes/[id]

Retorna uma nota completa com conteúdo e links.

Parâmetros de rota

ParâmetroTipoDescrição
idstringID da nota

Resposta 200

{
  id: string;
  title: string;
  icon: string | null;
  content: TiptapNode; // JSON do editor Tiptap
  collectionId: string | null;
  collection: { id: string; name: string } | null;
  linkedTo: { target: { id: string; title: string; icon: string | null } }[];
  linkedFrom: { source: { id: string; title: string; icon: string | null } }[];
  userId: string;
  workspaceId: string;
  createdAt: string;
  updatedAt: string;
}

PATCH /api/notes/[id]

Atualiza uma nota. Ao alterar o conteúdo, imagens órfãs no S3 são removidas automaticamente.

Parâmetros de rota

ParâmetroTipoDescrição
idstringID da nota

Corpo da requisição

CampoTipoDescrição
titlestringNovo título
iconstringNovo ícone
contentobjectJSON Tiptap do conteúdo
collectionIdstring | nullID da coleção (null para remover)

Resposta 200

{
  message: "Note updated successfully";
  note: { /* objeto completo da nota */ };
}

DELETE /api/notes/[id]

Remove uma nota e todas as imagens associadas no S3.

Resposta 200

{ message: "Note deleted successfully" }