🛡️Moderação de Comentários

O sistema de moderação e comentários permite gerenciar interações na plataforma, seja em postagens públicas ou privadas.

Estas funcionalidades dependem das features de API Pública estarem habilitadas no seu plano.


🔎 Listar revisões pendentes

Endpoint

GET https://sua-plataforma.ensinio.cloud/public/api/v1/comments/pending-reviews

Headers obrigatórios

  • Authorization: Bearer {token}
  • X-Requested-With: XMLHttpRequest

Descrição

Retorna uma lista unificada e paginada de todos os itens (Postagens de Feed, Postagens de Grupo, Comentários Gerais e Comentários de Aula) que aguardam moderação (onde reviewed_at é nulo).

Parâmetros de query

ParâmetroTipoObrigatórioPadrãoDescrição
limitinteger20Quantidade de itens por página (Max: 100).
pageinteger1Número da página.

Exemplo de resposta

{
  "data": [
    {
      "id": 105,
      "type": "feed_post",
      "content": "Conteúdo da publicação...",
      "raw_content": null,
      "author_id": 42,
      "parent_id": null,
      "created_at": "2023-10-27T10:00:00.000000Z",
      "status": "pending_review"
    },
    {
      "id": 88,
      "type": "general_comment",
      "content": "Este é um comentário em texto plano.",
      "raw_content": "{\"insert\": \"<p>Este é um comentário...</p>\"}",
      "author_id": 15,
      "parent_id": 105,
      "created_at": "2023-10-27T10:05:00.000000Z",
      "status": "pending_review"
    }
  ],
  "links": { ... },
  "meta": { ... }
}

✅ Aprovar item

Endpoint

PATCH https://sua-plataforma.ensinio.cloud/public/api/v1/comments/approve/{type}/{id}

Descrição

Marca um item específico como revisado, removendo-o da fila de pendências. Aceita qualquer tipo de item moderável.

Parâmetros de rota

ParâmetroTipoObrigatórioDescrição
typestringO tipo do recurso (feed_post, group_post, general_comment, lesson_comment).
idintegerO ID do recurso a ser aprovado.

Exemplo de resposta

{
  "message": "Comment approved successfully."
}

🗑️ Deletar comentário

Endpoint

DELETE https://sua-plataforma.ensinio.cloud/public/api/v1/comments/delete/{type}/{id}

Descrição

Realiza a exclusão lógica (Soft Delete) de um comentário.

⚠️

Atenção: Este endpoint aceita apenas tipos de comentários (general_comment, lesson_comment).

Parâmetros de rota

ParâmetroTipoObrigatórioDescrição
typestringDeve ser general_comment ou lesson_comment.
idintegerO ID do comentário a ser deletado.

Exemplo de resposta

{
  "message": "Comment deleted successfully."
}

💬 Comentar em publicação

Endpoint

POST https://sua-plataforma.ensinio.cloud/public/api/v1/comments/create

Descrição

Cria um novo comentário raiz em uma Publicação do Feed ou de Grupo.

Corpo da requisição (JSON)

CampoTipoObrigatórioDescrição
target_idintegerO ID da publicação alvo.
target_typestringDeve ser feed_post ou group_post.
contentstringO conteúdo do comentário em texto plano.
author_idintegerO ID do usuário (autor) que está comentando.

Exemplo de resposta

{
  "message": "Comment created successfully."
}

↩️ Responder a comentário

Endpoint

POST https://sua-plataforma.ensinio.cloud/public/api/v1/comments/reply

Descrição

Cria uma resposta aninhada (filho) para um comentário já existente.

Corpo da requisição (JSON)

CampoTipoObrigatórioDescrição
target_idintegerO ID do comentário que está sendo respondido.
target_typestringDeve ser general_comment ou lesson_comment.
contentstringO conteúdo da resposta em texto plano.
author_idintegerO ID do usuário (autor) que está respondendo.

Exemplo de resposta

{
  "message": "Reply created successfully."
}

🧩 Tipos de Recurso

Para os parâmetros type ou target_type, utilize os valores abaixo:

Valor (type)Descrição
feed_postPublicação no Feed de Notícias (Post Raiz).
group_postPublicação em Comunidade/Grupo (Post Raiz).
general_commentComentário em publicação ou resposta.
lesson_commentComentário ou dúvida em uma aula.

Possíveis respostas de erro

  • 400 Bad Request / 422 Unprocessable Entity
{
  "message": "The item of type feed_post does not support deletion."
}
  • 401 Unauthorized
{
  "message": "Token inválido ou ausente."
}
  • 404 Not Found
{
  "message": "Recurso não encontrado."
}