Aller au contenu

Atualiza content

PUT/api/content/{id}

Auth
Jeton requis
Clé d’API:
content:write
X-CommunityId
X-CommunityId Envoyez le X-CommunityId de la communauté où l’opération a lieu.
Les descriptions des endpoints viennent directement de la spécification de l’API et sont en portugais pour l’instant. L’interface autour est traduite.

Sujeito a verificação de papel (RBAC). O item precisa ser da comunidade do `X-CommunityId`: de outra comunidade, responde 404, como se não existisse. `videoMediaId` troca o vídeo hospedado (o anterior é apagado) e `null` o remove; enviar `videoUrl` com valor também remove o hospedado.

Paramètres

NomEmplacementTypeDescription
idobligatoirepathstring (uuid)

En-têtes

NomTypeDescription
X-CommunityIdfacultatifstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Corps de la requête application/json

NomTypeDescription
spaceIdfacultatifstring (uuid)Valid space ID required if provided
titlefacultatifstringTitle cannot be empty
publishedAtfacultatifstring (date-time)Data de publicação (ISO 8601). Só owner e admin (e o SuperAdmin) podem enviar; outros papéis recebem 403 com `errors[0].param = "publishedAt"`. Precisa ser passada ou agora: no futuro, 400. Sem o campo, a data não muda. Mais de 5 minutos no passado, o post entra em silêncio (sem pontos de engajamento, fora do bloco de novidades dos e-mails e sem o selo de novo). A resposta e as listas trazem `publishedAt`, e o feed ordena por ele; `createdAt` continua sendo o momento real da gravação.
authorMemberIdfacultatifstring (uuid)Corrige o autor: o post passa a ser desse perfil, como se publicado em nome dele (em silêncio, fora dos destaques e sem o selo de novo). Mesmas regras da criação: só owner e admin (e o SuperAdmin), 403 com `errors[0].param = "authorMemberId"` para outros papéis; perfil de outra comunidade ou removido, 404; o autor novo e o atual (se não for você) precisam ter papel abaixo do seu (SuperAdmin age sobre qualquer um), senão 403. Devolver o post a si mesmo mantém o silêncio se ele já era em nome de outro, importado ou retroativo. Fica registrado no log da comunidade.
publishAtfacultatifstring (date-time)Reagendar um post agendado (`schedule.status` `scheduled`, ou `failed`, que volta a esperar). Autor, quem agendou, owner, admin, moderador, financeiro e SuperAdmin (senão 403 `forbidden`); post já publicado: 409 `notScheduled`. Mesmas regras de data da criação. Num post agendado, a data muda só por aqui: `publishedAt` dá 400 `useReschedule`. Em status, `publishAt` sozinho no corpo responde `data: { id, schedule }`.
commentsDisabledfacultatifbooleanDesliga (`true`) ou religa (`false`) os comentários. Só o autor, owner, admin, moderador e SuperAdmin (outros papéis, inclusive financeiro: 403 com `errors[0].param = "commentsDisabled"`). Enviado **sozinho** no corpo, só troca a chave: não reabre a moderação nem conta como edição, e o moderador pode fazê-lo em post de outra pessoa; a resposta é `data: { id, commentsDisabled, canToggleComments }`. Valor que não é booleano: 400. Com comentários desligados, ninguém comenta (403 `comments_closed`), nem a equipe; reações continuam.
tagsfacultatifstring[]As tags do post, como devem aparecer. Cada uma é aparada, perde o `#` da frente e os espaços repetidos; vazias saem e repetidas (sem diferença de maiúscula e acento) ficam uma vez, na ordem enviada. No máximo 10 tags de até 40 caracteres: acima disso, ou com item que não é texto, 400 com `errors[0].param = "tags"`. No `PUT`, a lista substitui a anterior; `[]` ou `null` limpa. A resposta e as listas trazem `tags` (sempre um array), e `?tag=` em `GET /api/feed` e `GET /api/content` filtra por uma delas.

Réponses

StatutDescription
200Operação realizada com sucesso.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`).
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
500Erro interno do servidor.

Exemple curl

curl -X PUT "https://api.memberfy.net/api/content/<id>" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'