Criar Informador
Cria um novo informador no sistema
Descrição
Cria um novo usuário com role de informador no sistema. Apenas o campo first_name é obrigatório; todos os demais campos são opcionais e, quando enviados, passam pelas validações específicas (formato de email, força de senha, CPF etc.).
- Validação de email único no sistema
- Validação de CPF único no sistema (se fornecido)
- Validação de formato e dígitos verificadores do CPF
- Geração automática de iniciais ignorando artigos e preposições
- Suporte a verificação de email opcional
- Requer autenticação JWT válida
Detalhes do Endpoint
VERBO
URL BASE
ENDPOINT
Parâmetros do Body (JSON)
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| first_name | string | Sim | Primeiro nome do informador |
| last_name | string | Não | Sobrenome do informador |
| string (email) | Não | Email único do informador | |
| password | string | Não | Senha opcional (se enviada, deve conter ao menos 6 caracteres, incluindo maiúscula, minúscula e número) |
| treatment_pronoun_id | integer | Não | ID do pronome de tratamento |
| phone | string | Não | Telefone do informador |
| category_id | integer | Não | ID da categoria do informador |
| diocese_id | integer | Não | ID da diocese |
| cpf | string (11 dígitos) | Não | CPF único do informador (exatamente 11 dígitos numéricos) |
| group_id | string (UUID) | Não | ID do grupo do informador |
| img_url | string (URL) | Não | URL da imagem do informador |
| require_email_verification | boolean | Não | Se deve exigir verificação de email (padrão: config global) |
Cabeçalhos
| Parâmetro | Valor |
|---|---|
| Authorization | Bearer <token> |
| Content-Type | application/json |
| Accept | application/json |
Exemplo de Requisição
POST /api/informers
Authorization: Bearer <token>
Content-Type: application/json
Accept: application/json
{
"first_name": "João",
"last_name": "Silva",
"email": "joao.silva@diocese.com.br",
"password": "Senha123",
"treatment_pronoun_id": 1,
"phone": "(11) 98765-4321",
"category_id": 5,
"diocese_id": 3,
"cpf": "12345678901",
"group_id": "group-uuid-here",
"img_url": "https://example.com/photo.jpg",
"require_email_verification": false
}
Respostas
Sucesso - 201
{
"success": true,
"data": {
"id": "uuid-user",
"first_name": "João",
"last_name": "Silva",
"email": "joao.silva@diocese.com.br",
"role": {
"id": 2,
"name": "Informador",
"slug": "informador",
"description": "Usuário informador com acesso limitado aos questionários"
},
"cpf": "12345678901",
"phone": "(11) 98765-4321",
"category": {"id": 5, "name": "Consultor diocesano", "description": "Descrição", "active": true},
"treatment_pronoun": {"id": 1, "name": "Pe.", "description": "Padre", "active": true},
"diocese": {"id": 3, "name": "Diocese X", "state": "SP", "active": true},
"process": {"id": "uuid-processo", "name": "Provisão Diocese X", "protocol": "PROV-2025-001"},
"group": {"id": "group-uuid-here", "name": "Grupo 1", "color": "#845ADF", "description": "Descrição do grupo"},
"created_at": "2025-01-21T17:00:00.000000Z",
"updated_at": "2025-01-21T17:00:00.000000Z"
},
"message": "Informador criado com sucesso",
"email_verification_required": false
}
Nota: A resposta inclui os dados do informador criado com role aninhada (sem timestamps) e confirmação de criação.
Erro - 422 (Dados inválidos)
{
"message": "Os dados fornecidos são inválidos.",
"errors": {
"first_name": ["O campo nome é obrigatório."],
"email": ["O email deve ter um formato válido."],
"password": ["A senha deve ter pelo menos 6 caracteres."],
"cpf": ["O CPF deve conter exatamente 11 dígitos numéricos."]
}
}
Condição: Dados de entrada inválidos: ausência de first_name ou campos opcionais enviados em formato incorreto (ex.: email inválido, senha fraca, CPF inválido)
Erro - 401 (Token inválido)
{
"success": false,
"message": "Token inválido"
}
Condição: Token JWT inválido, expirado ou não fornecido
Códigos de Resposta
| Código | Descrição |
|---|---|
| 201 | Informador criado com sucesso |
| 422 | Dados inválidos ou duplicados (email/CPF já existem) |
| 401 | Token inválido ou expirado |
Validações Específicas
Campo obrigatório
Somente first_name é obrigatório. Os demais campos são opcionais, porém validados sempre que enviados.
Email Único
O email, quando informado, deve ser único no sistema. Se já existir, retorna erro 422.
CPF Único
O CPF deve ser único no sistema (se fornecido). Valida formato e dígitos verificadores.
Senha Forte
A senha é opcional, mas se informada deve conter pelo menos 6 caracteres, incluindo maiúscula, minúscula e número.