Saltar al contenido

Edita a pesquisa

PATCH/api/surveys/{id}

Auth
Requiere token
Clave de API:
surveys:write
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

Owner e admin. No rascunho, tudo (`spaceId` move a pesquisa para outro espaço de pesquisas); `sections` substitui a árvore inteira numa transação (até 20 seções e 100 perguntas). Aberta: só `title`, `description`, `closesAt` e `publicLinkEnabled` (qualquer outro campo, 422). Encerrada: 422.

Parámetros

NombreDóndeTipoDescripción
idobligatoriopathstring (uuid)

Headers

NombreTipoDescripción
If-Unmodified-SinceopcionalstringOpcional: a versão lida (`updatedAt` do `GET`), como data HTTP, se não vier `updatedAt` no corpo. Outra gravação depois dela responde 409.
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Cuerpo de la solicitud application/json

NombreTipoDescripción
spaceIdopcionalstring (uuid)**Obrigatório na criação.** Um espaço do módulo `surveys` da comunidade do header (outro módulo, outra comunidade ou apagado: 422 em `spaceId`). Num espaço "Uma pesquisa" (`moduleConfig.mode = single`) que já tem uma, 409. Na edição (só no rascunho), move a pesquisa para outro espaço de pesquisas, com as mesmas regras.
titleopcionalstringmax 200
descriptionopcionalstringmax 5000
templateopcionalnps | csat | event | course | enps | blankSó na criação: sem `sections`, a pesquisa nasce com as do modelo, no idioma da comunidade.
anonymityopcionalIDENTIFIED | ANONYMOUS
publicLinkEnabledopcionalboolean
startsAtopcionalstring (date-time)Início da coleta (opcional). Abrir com ele no futuro agenda a pesquisa.
closesAtopcionalstring (date-time)Fim da coleta (opcional), depois de `startsAt`.
responseModeopcionaloptional | required | immediate
sectionsopcionalobject[]
sections[].idopcionalstring (uuid)
sections[].positionopcionalinteger
sections[].titleobligatoriostringmax 200
sections[].descriptionopcionalstring
sections[].questionsopcionalobject[]
sections[].questions[].idopcionalstring (uuid)
sections[].questions[].sectionIdopcionalstring (uuid)
sections[].questions[].positionopcionalinteger
sections[].questions[].typeobligatorioSINGLE_CHOICE | MULTIPLE_CHOICE | SCALE | NPS | TEXT
sections[].questions[].titleobligatoriostringmax 500
sections[].questions[].helpopcionalstringmax 1000
sections[].questions[].requiredopcionalboolean
sections[].questions[].optionsopcionalobject[]
sections[].questions[].minopcionalinteger
sections[].questions[].maxopcionalinteger
sections[].questions[].minLabelopcionalstring
sections[].questions[].maxLabelopcionalstring
sections[].questions[].displayopcionalnumbers | stars | short | long
groupByPrimaryGroupopcionalbooleanSó anônima e só no rascunho (identificada: 422 `groupingAnonymousOnly`; mudar para identificada desliga). Aceito e guardado, mas sem efeito até o mapa de calor anônimo chegar.
recurrenceopcionalobjectSó no rascunho (aberta ou agendada: 422 `recurrenceDraftOnly`; numa rodada: 422 `recurrenceRoundCannotRepeat`). Um objeto liga a repetição (ou muda a agenda) e a primeira rodada abre na próxima data depois de agora (ou de `startsAt`); a pesquisa recorrente continua editável e cada mudança vale só para as próximas rodadas. `null` desliga: sem rodadas, volta a ser rascunho comum; com rodadas, encerra a repetição. Encerrada: 422 `recurrenceEnded`.

Respuestas

CódigoDescripción
200A pesquisa atualizada.
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.
409Outra gravação veio antes da versão enviada (`updatedAt` no corpo ou `If-Unmodified-Since`); `data.updatedAt` é a versão atual: recarregue e repita. Cada gravação avisa os editores abertos (`item.saved`, ver `POST /api/realtime/ticket`).
422Árvore inválida, limite passado, campo travado depois de aberta, ou encerrada.
500Erro interno do servidor.

Ejemplo con curl

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