Nunciatura Provista

API Documentation V1

Criar Informador

Cria um novo informador no sistema

Este endpoint é do tipo: Protected

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

POST

URL BASE

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

ENDPOINT

/informers

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

Mensagem de erro: "Este email já está cadastrado no sistema."

CPF Único

O CPF deve ser único no sistema (se fornecido). Valida formato e dígitos verificadores.

Mensagem de erro: "Este CPF já está cadastrado no sistema."

Senha Forte

A senha é opcional, mas se informada deve conter pelo menos 6 caracteres, incluindo maiúscula, minúscula e número.

Mensagem de erro: "A senha deve conter pelo menos uma letra maiúscula, uma letra minúscula e um número."