Aller au contenu

Cria ou executa sections & spaces

POST/api/sections

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

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
titleobligatoirestringTitle is required · max 255
descriptionfacultatifstringDescription must be a string
slugfacultatifstringLetras minúsculas, números e hífen. Não pode começar com _ nem ser um nome reservado pelo app (admin, pricing, billing, checkout-success, products, settings, account, members, monetization, set-password, api, docs, oauth, verify, offer, payment e outros; lista em src/config/reservedSlugs.js): 400 com param = slug. Gerado do título quando ausente, nunca com _ nem reservado. · max 255
iconfacultatifstringInvalid icon value
orderfacultatifintegerOrder must be a non-negative integer
visibilityfacultatifpublic | members | plan | privateInvalid visibility value
accessfacultatifobjectQuem entra quando `visibility` é `private`. Opcional e **aditivo**: ausente não mexe em nada. Cada lista (`groupIds`, `productIds`, `subscriptionGroupIds`, `badgeIds`) e o nível (`minLevelId`/`minLevel`) só mudam quando vêm no pedido: **ausente (ou `null`) mantém** o que está lá, a lista enviada **substitui** a daquele tipo e `[]` tira todos. Mandar só o nível não mexe em grupos nem produtos. As listas são **união** — satisfazer qualquer uma basta. Um id de outra comunidade, ou uma lista que não é array, devolve 400 com `errors`.
access.groupIdsfacultatifstring (uuid)[]
access.productIdsfacultatifstring (uuid)[]
access.subscriptionGroupIdsfacultatifstring (uuid)[]
access.badgeIdsfacultatifstring (uuid)[]Badges da comunidade (não apagados); quem tem um deles (não revogado) entra. Como as outras listas, **ausente (ou `null`) mantém** os badges que já estão lá; `[]` tira todos. Badge de outra comunidade, apagado ou id inválido devolve 400 com `errors`.
access.minLevelIdfacultatifstring (uuid)"A partir do nível": quem está nesse nível do Engajamento ou acima (o nível gravado, o mesmo do perfil e do ranking) entra. Um por espaço ou seção. Ausente mantém; `null` tira. Nível de outra comunidade ou id inválido devolve 400 com `errors`. Com a gamificação desligada, o nível não abre nada.
access.minLevelfacultatifintegerO mesmo nível pelo número (1 é o primeiro), para a escada ainda nos níveis padrão, que não têm id antes do primeiro uso; vira `minLevelId`. Número fora da escada → 400. · ≥ 1
lockedDisplayfacultatifhide | section | section_and_spaces"Para quem não tem acesso": `hide` (some, como antes), `section` (só a linha da seção com cadeado, sem os spaces, e a página da seção) ou `section_and_spaces` (a seção e os spaces com cadeado; o padrão). Não tem efeito numa seção Pública nem numa só administração (Privada sem ninguém), que nunca vira cadeado. Na edição, ausente não mexe.
isHomefacultatifbooleanisHome must be boolean

Réponses

StatutDescription
201Operaçã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.
500Erro interno do servidor.

Exemple curl

curl -X POST "https://api.memberfy.net/api/sections" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"title":"string"}'