Configura as boas-vindas
PUT/api/welcome/settings
- Auth
- Exige token
- Quem pode:
- owner
- admin
- X-CommunityId
X-CommunityIdEnvie o X-CommunityId da comunidade em que a operação acontece.
Só owner e admin. Parcial: o que não vem fica como está; `screens` substitui a lista (de 1 a 5 telas para ligar; as missões dos "Primeiros passos" vêm nos campos `missions*` e `finalBadgeId`; mantenha o `id` de cada tela ao editar). Ligar (`enabled: true` quando estava desligada) marca `enabledAt` e grava `applyToExisting` como veio (falso se não vier). Desligar deixa os pendentes entrarem direto; ligar de novo não pede de novo a quem já concluiu ou pulou. Erros por campo com 422 em `screens[i].<campo>`.
Headers
| Nome | Tipo | Descrição |
|---|---|---|
X-CommunityIdopcional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Corpo da requisição application/json
| Nome | Tipo | Descrição |
|---|---|---|
enabledopcional | boolean | |
modeopcional | REQUIRED | SKIPPABLE | |
applyToExistingopcional | boolean | |
missionsEnabledopcional | boolean | |
missionsShowExistingopcional | boolean | |
finalBadgeIdopcional | string (uuid) | |
missionsopcional | object[] | Substitui a lista (de 1 a 6 para ligar). Mantenha o `id` ao editar: a missão com o mesmo tipo e item continua cumprida por quem já fez; uma nova ou alterada conta a partir de agora. |
missions[].idopcional | string (uuid) | |
missions[].kindobrigatório | profile_completed | first_post | form_submitted | event_registered | course_completed | |
missions[].titleobrigatório | string | max 80 |
missions[].spaceIdopcional | string (uuid) | |
missions[].formIdopcional | string (uuid) | |
missions[].eventIdopcional | string (uuid) | |
missions[].courseIdopcional | string (uuid) | |
missions[].pointsopcional | integer | ≥ 0, ≤ 10000 |
missions[].badgeIdopcional | string (uuid) | |
screensopcional | object[] | |
screens[].idopcional | string (uuid) | |
screens[].titleopcional | string | max 120 |
screens[].bodyopcional | string | |
screens[].videoopcional | object | |
screens[].video.mediaIdopcional | string (uuid) | |
screens[].video.urlopcional | string | |
screens[].video.requireFinishopcional | boolean | |
screens[].rulesopcional | object | |
screens[].rules.textopcional | string | |
screens[].fieldIdsopcional | string (uuid)[] |
Respostas
| Código | Descrição |
|---|---|
200 | A configuração salva. |
401 | Token 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`). |
403 | Autenticado, mas sem permissão para esta operação. |
422 | Tela inválida (título, texto, vídeo, regras, campo de outra comunidade), mais de 5 telas, ou ligar sem tela; missão inválida em `missions[i].<campo>` (tipo, título, item de outra comunidade, pontos, badge), mais de 6, ou ligar sem missão. |
Exemplo com curl
curl -X PUT "https://api.memberfy.net/api/welcome/settings" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{}'