Pede feedback a um colega
POST/api/feedbacks/requests
- Auth
- Exige token
- Quem pode:
- owner
- admin
- Chave de API:
- Não aceita chave de API
- X-CommunityId
X-CommunityIdEnvie o X-CommunityId da comunidade em que a operação acontece.
Qualquer papel que abra o espaço (`spaceId`; opcional enquanto a comunidade tem um só espaço de Feedbacks, obrigatório com vários: 422 `spaceRequired`). Quem pede é sempre quem vai receber o feedback. `giverId` é um colega vivo que abre esse espaço (a si mesmo: 422); `message` opcional, até 1000 caracteres. `themeIds` (opcional, até 10) são temas ativos do catálogo da comunidade sobre os quais a pessoa quer ouvir, e `behaviorIds` (opcional) comportamentos ativos desses temas; inativo, de outra comunidade ou de tema não escolhido: 422 `themeInvalid`/`behaviorInvalid`. Quem vai responder vê os temas no pedido. Um pedido pendente por par em cada espaço (o segundo: 409); a resposta entra no espaço do pedido. O colega recebe, 10 minutos depois e pela fila, o e-mail "Fulano pediu o seu feedback" (categoria `feedbacks`), sem a mensagem. `data.emailNotice` traz `{ scheduled, recipientCount }`.
**Sobre outra pessoa:** com `subjectId` (a pessoa) e `giverIds` (os colegas indicados; `giverId` sozinho também vale), cria um pedido para cada indicado, todos com o mesmo `roundId`. Só o **líder direto** da pessoa (`reportsToId`; o indireto não) ou owner/admin, sobre qualquer pessoa da comunidade (os outros: 403 `aboutDenied`). Tudo ou nada: até `maxNominees` indicados (configuração do espaço, `GET /api/feedbacks/settings`; padrão 5), distintos, que abrem o espaço, nem a pessoa, nem quem pede, nem o líder dela (422 com `errors`, `param` = `giverIds[i]`); indicado com pedido pendente seu sobre a mesma pessoa: 409 `aboutPending`. Quem pede lê o feedback interno das respostas; cada indicado vê só o próprio pedido (nem quem mais foi indicado, nem as outras respostas); a pessoa não é avisada nem vê o pedido. Cada indicado recebe "Fulano pediu o seu feedback sobre uma pessoa do time" (sem o nome da pessoa). Devolve `{ roundId, subject, maxNominees, requests: [FeedbackRequest], emailNotice }`. `giverIds` sem `subjectId`: 422.
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 |
|---|---|---|
spaceIdopcional | string (uuid) | Espaço de Feedbacks do pedido. |
giverIdopcional | string (uuid) | A pessoa a quem se pede; obrigatório sem `subjectId`. |
subjectIdopcional | string (uuid) | Pedido sobre esta pessoa (líder direto ou owner/admin). |
giverIdsopcional | string (uuid)[] | Os colegas indicados, só com `subjectId`; até o limite do espaço. |
messageopcional | string | max 1000 |
themeIdsopcional | string (uuid)[] | Temas do catálogo (GET /api/feedbacks/themes). |
behaviorIdsopcional | string (uuid)[] | Comportamentos dos temas escolhidos. |
Respostas
| Código | Descrição |
|---|---|
201 | O pedido criado (`FeedbackRequest` + `emailNotice`). |
400 | Requisição inválida — falha de validação. |
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 | Sem permissão para esta operação, ou sessão de suporte do SuperAdmin ("Entrar"): feedbacks são pessoais e o modo suporte não vê nem age neles (`feedback.errors.supportSession`). |
404 | Recurso não encontrado. |
409 | Já existe um pedido pendente seu para esta pessoa neste espaço (sobre outra pessoa: para este indicado, sobre a mesma pessoa). |
422 | A si mesmo, pessoa de outra comunidade ou que não abre o espaço, mensagem acima de 1000, tema ou comportamento inválido, ou sem `spaceId` numa comunidade com vários espaços de Feedbacks (`spaceRequired`); sobre outra pessoa: indicados demais, repetidos, a própria pessoa ou o líder dela. |
500 | Erro interno do servidor. |
Exemplo com curl
curl -X POST "https://api.memberfy.net/api/feedbacks/requests" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{}'