Nunciatura Provista

API Documentation V1

Atualizar Usuário

Atualiza os dados de um usuário existente

Este endpoint é do tipo: Protected

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

PUT

URL BASE

http://api.provista.hmg.nabrasil.org.br/v1

ENDPOINT

/users/{id}

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
email 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"
email 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