GET
https://api.myidvirtual.com
/
user
/
filter
Filtrar Usuários
curl --request GET \
  --url https://api.myidvirtual.com/user/filter \
  --header 'Authorization: <authorization>'
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "João Silva",
    "email": "[email protected]",
    "role": "CUSTOMER",
    "status": true,
    "credits": 100,
    "cellphone": "+5511999999999",
    "notes": "Cliente VIP",
    "owner": {
      "id": "owner-id",
      "name": "Revendedor X"
    },
    "myMaster": {
      "id": "master-id",
      "name": "Master Y"
    },
    "createdAt": "2024-01-15T10:30:00.000Z",
    "updatedAt": "2024-01-20T14:45:00.000Z"
  },
  {
    "id": "987e6543-e21b-12d3-a456-426614174000",
    "name": "Maria Santos",
    "email": "[email protected]",
    "role": "CUSTOMER",
    "status": true,
    "credits": 50,
    "cellphone": "+5511988888888",
    "notes": "Cliente regular",
    "owner": {
      "id": "owner-id",
      "name": "Revendedor X"
    },
    "createdAt": "2024-01-18T15:20:00.000Z",
    "updatedAt": "2024-01-19T09:10:00.000Z"
  }
]

Filtrar Usuários

Endpoint para buscar e filtrar usuários com base em diferentes critérios. Permite pesquisa por nome, notas e outros campos personalizados.

Autenticação

Authorization
string
required
Bearer token JWT do usuário autenticado

Parâmetros

Query Parameters

name
string
Filtrar por nome (busca parcial, case-insensitive)
email
string
Filtrar por email (busca parcial, case-insensitive)
notes
string
Filtrar por notas/observações (busca parcial)
role
string
Filtrar por papel do usuário (ADMIN, MASTER, RESALE, CUSTOMER)
status
boolean
Filtrar por status ativo/inativo (true/false)
myMaster
string
Filtrar por ID do master (usuários de um master específico)
owner
string
Filtrar por ID do proprietário (usuários criados por alguém específico)
limit
number
Número máximo de resultados (padrão: 50)
offset
number
Número de resultados a pular (para paginação)

Responses

[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "João Silva",
    "email": "[email protected]",
    "role": "CUSTOMER",
    "status": true,
    "credits": 100,
    "cellphone": "+5511999999999",
    "notes": "Cliente VIP",
    "owner": {
      "id": "owner-id",
      "name": "Revendedor X"
    },
    "myMaster": {
      "id": "master-id",
      "name": "Master Y"
    },
    "createdAt": "2024-01-15T10:30:00.000Z",
    "updatedAt": "2024-01-20T14:45:00.000Z"
  },
  {
    "id": "987e6543-e21b-12d3-a456-426614174000",
    "name": "Maria Santos",
    "email": "[email protected]",
    "role": "CUSTOMER",
    "status": true,
    "credits": 50,
    "cellphone": "+5511988888888",
    "notes": "Cliente regular",
    "owner": {
      "id": "owner-id",
      "name": "Revendedor X"
    },
    "createdAt": "2024-01-18T15:20:00.000Z",
    "updatedAt": "2024-01-19T09:10:00.000Z"
  }
]

Exemplo de Requisição

# Buscar por nome
curl --location --request GET 'http://localhost:3333/user/filter?name=João' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

# Buscar por múltiplos filtros
curl --location --request GET 'http://localhost:3333/user/filter?role=CUSTOMER&status=true&limit=10' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

# Buscar por notas
curl --location --request GET 'http://localhost:3333/user/filter?notes=VIP' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

Permissões de Visualização

Os resultados são automaticamente filtrados com base nas permissões do usuário:
  • ADMIN: Visualiza todos os usuários
  • MASTER: Visualiza apenas usuários de sua árvore
  • RESALE: Visualiza apenas seus clientes diretos
  • CUSTOMER: Sem acesso a este endpoint
Combine múltiplos filtros para buscas mais precisas e use paginação para melhor performance.

Próximos Passos

  1. Implementar filtros salvos para buscas frequentes
  2. Adicionar ordenação de resultados
  3. Criar relatórios baseados em filtros
  4. Implementar busca full-text para melhor precisão