Aller au contenu

Atualiza status

PUT/api/status/{id}

Auth
Jeton requis
Clé d’API:
feed: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.

O item precisa ser da comunidade do `X-CommunityId`: de outra comunidade, responde 404, como se não existisse.

Paramètres

NomEmplacementTypeDescription
idobligatoirepathstring

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
contentfacultatifstringmax 500
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.
videoMediaIdfacultatifstring (uuid)Drop: vídeo gravado no navegador, enviado por `POST /api/media/upload-url` com a finalidade `statusVideo` (até 350 MB) e confirmado em `POST /api/media/confirm`, no mesmo space do post curto. Com ele, `content` pode ir vazio. Só quem enviou o vídeo pode usá-lo (de outra pessoa, de outra finalidade ou de outro space: 400 com `errors[0].param = "videoMediaId"`; id desconhecido ou de outra comunidade: 404; já usado: 409). No `PUT`, outro id troca o vídeo e `null` remove; o anterior é apagado, com as versões convertidas. A resposta e as listas trazem `videoMediaId`; o player pede o link assinado em `GET /api/media/{id}/url`, que segue a leitura do post curto (pendente ou rejeitado, só o autor e a equipe). Só quem aparece como autor do item adiciona ou troca o vídeo: a equipe, editando ou publicando em nome de outra pessoa, só pode remover com `null` (senão 403 com `errors[0].param = "videoMediaId"`).
spaceIdfacultatifstring (uuid)
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.
isPriorityfacultatifbooleanOwner e admin.
visibilityfacultatifpublic | members | plan | private`plan`: só quem tem assinatura ativa (e a equipe) vê.
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.

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/status/<id>" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'