Atualizar Usuário
Atualiza os dados de um usuário existente
Descrição
Atualiza os dados de um usuário existente com as seguintes funcionalidades:
- Valida unicidade de email (ignorando o próprio usuário)
- Se o usuário for Informador, atualiza também dados do informer
- Retorna o usuário atualizado com todos os relacionamentos
- Requer autenticação JWT válida
Detalhes do Endpoint
VERBO
URL BASE
ENDPOINT
Parâmetros da URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | string (UUID) | UUID do usuário a ser atualizado |
Campos da Requisição (Base)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| first_name | string | Sim | Primeiro nome do usuário |
| last_name | string | Sim | Sobrenome do usuário |
| string | Sim | E-mail do usuário (deve ser único) | |
| img_url | string | Não | URL da foto de perfil do usuário |
Campos Adicionais para Informador
Se o usuário for Informador, os campos abaixo são aplicados:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| treatment_pronoun_id | integer | Sim | ID do pronome de tratamento (Pe., Dom, Card., etc.) |
| phone | string | Sim | Telefone do informador |
| function | string | Sim | Função eclesiástica do informador |
| diocese_id | integer | Sim | ID da diocese do informador |
| group_id | string (UUID) | Sim | UUID do grupo eclesiástico |
| provision_candidate | string | Sim | Nome do candidato a provisão |
| cpf | string | Não | CPF apenas com números (11 dígitos) |
Normalização Automática
O sistema aplica normalização automática nos seguintes campos antes de salvar no banco de dados:
| Campo | Regra de Normalização | Exemplo |
|---|---|---|
| first_name | Primeira letra maiúscula, exceto artigos |
"joão" → "João"
|
| last_name | Primeira letra maiúscula, exceto artigos |
"da silva" → "da Silva"
|
| Tudo minúsculo |
"RICARDO@GMAIL.COM" → "ricardo@gmail.com"
|
|
| city | Primeira letra de cada palavra maiúscula |
"são paulo" → "São Paulo"
|
| state | Sempre maiúsculo |
"sp" → "SP"
|
| cpf | 11 dígitos numéricos + validação |
"11144477735" (válido)
|
Artigos que permanecem minúsculos: de, da, do, das, dos, e
Demais campos: Mantidos exatamente como digitado (apenas trim)
Exemplo de Requisição
{
"first_name": "João",
"last_name": "Silva Santos",
"email": "joao.silva@diocese.com.br",
"phone": "(11) 99999-8888"
}
Respostas
Sucesso - 200 (Usuário Admin)
{
"success": true,
"data": {
"id": "b033e2ff-4114-5bgg-9797-e8bfc6c162d0",
"first_name": "Sergio",
"last_name": "Borges",
"email": "sluizborges@gmail.com",
"img_url": "https://via.placeholder.com/150/28a745/ffffff?text=SB",
"initials": "SB",
"email_verified_at": "2024-10-16T12:00:00.000000Z",
"created_at": "2024-10-16T12:00:00.000000Z",
"updated_at": "2024-10-16T12:05:00.000000Z",
"role": {
"id": 1,
"name": "Administrador",
"slug": "admin",
"description": "Usuário administrador com acesso total ao sistema"
}
},
"message": "Usuário atualizado com sucesso"
}
Nota: Usuários Administradores não possuem relacionamento com informer, por isso o campo "informer" não aparece na resposta.
Sucesso - 200 (Usuário Informador)
{
"success": true,
"data": {
"id": "9fd6b694-602a-461f-a052-c473f59bbcc6",
"first_name": "João",
"last_name": "Silva Santos",
"email": "joao.silva@diocese.com.br",
"img_url": "https://via.placeholder.com/150/28a745/ffffff?text=JS",
"initials": "JS",
"email_verified_at": "2024-10-16T12:00:00.000000Z",
"created_at": "2024-10-16T12:00:00.000000Z",
"updated_at": "2024-10-16T12:05:00.000000Z",
"role": {
"id": 2,
"name": "Informador",
"slug": "informador",
"description": "Usuário informador com acesso limitado aos questionários"
},
"informer": {
"id": "7ec8d916-824c-683h-c274-e695h71dde8",
"user_id": "9fd6b694-602a-461f-a052-c473f59bbcc6",
"cpf": "11144477735",
"treatment_pronoun_id": 1,
"phone": "(11) 99999-8888",
"function": "Padre",
"diocese_id": 1,
"group_id": "cbd3104e-4099-4291-bd9b-6ba89c65e49b",
"provision_candidate": "João Silva Santos",
"created_at": "2024-10-16T12:00:00.000000Z",
"updated_at": "2024-10-16T12:05:00.000000Z",
"treatment_pronoun": {
"id": 1,
"name": "Pe.",
"description": "Padre"
},
"diocese": {
"id": 1,
"name": "Arquidiocese de Brasília",
"state": "DF"
},
"group": {
"id": "cbd3104e-4099-4291-bd9b-6ba89c65e49b",
"name": "Grupo 1",
"color": "#007bff",
"description": "Bispo em saída/transferido"
}
}
},
"message": "Usuário atualizado com sucesso"
}
Nota: Usuários Informadores possuem relacionamento com informer, por isso o campo "informer" aparece na resposta com todos os dados relacionados.
Erro - 422 (Validação falhou)
{
"message": "Os dados fornecidos são inválidos.",
"errors": {
"email": [
"Este email já está cadastrado no sistema."
],
"cpf": [
"O CPF deve conter exatamente 11 dígitos numéricos."
],
"treatment_pronoun_id": [
"O campo pronome de tratamento é obrigatório."
],
"phone": [
"O campo telefone é obrigatório."
],
"function": [
"O campo função é obrigatório."
],
"diocese_id": [
"O campo diocese é obrigatório."
],
"group_id": [
"O campo grupo é obrigatório."
],
"provision_candidate": [
"O campo candidato à provisão é obrigatório."
]
}
}
Condição: Dados de validação inválidos (todos os campos obrigatórios devem ser fornecidos)
Erro - 404 (Usuário não encontrado)
{
"success": false,
"message": "Usuário não encontrado"
}
Erro - 401 (Token inválido)
{
"success": false,
"message": "Token inválido"
}
Códigos de Resposta
| Código | Descrição |
|---|---|
| 200 | Usuário atualizado com sucesso |
| 401 | Token inválido ou não fornecido |
| 404 | Usuário não encontrado |
| 422 | Dados de validação inválidos |