Recuperar listas de usuarios en empresas o proyectos con filtrado y paginación.


Listar Usuarios

Blue proporciona múltiples consultas para listar usuarios en diferentes ámbitos: a nivel de empresa, específicos de un proyecto o búsqueda de usuarios individuales. Estas consultas admiten paginación, filtrado y ordenación para gestionar de manera eficiente grandes bases de usuarios.

Ejemplo Básico - Usuarios de la Empresa

Listar todos los usuarios en una empresa:

query ListCompanyUsers {
  companyUserList(companyId: "acme-corp") {
    users {
      id
      email
      fullName
      jobTitle
      lastActiveAt
    }
    pageInfo {
      totalItems
      hasNextPage
    }
  }
}

Ejemplo Avanzado - Usuarios de Proyecto Filtrados

Listar usuarios de proyecto con búsqueda y paginación:

query ListProjectUsers {
  projectUserList(
    projectId: "web-redesign"
    search: "engineer"
    first: 20
    orderBy: lastActiveAt_DESC
  ) {
    edges {
      node {
        id
        email
        fullName
        accessLevel
        customRole {
          id
          name
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Consultas Disponibles

companyUserList

Lista todos los usuarios en una empresa con filtrado opcional.

Parámetros de Entrada

Parámetro Tipo Requerido Descripción
companyId String! ✅ Sí ID o slug de la empresa
notInProjectId String No Excluir usuarios ya en este proyecto
search String No Buscar por nombre o correo electrónico
first Int No Número de resultados a devolver (paginación hacia adelante)
after String No Cursor para paginación hacia adelante
last Int No Número de resultados a devolver (paginación hacia atrás)
before String No Cursor para paginación hacia atrás
skip Int No Número de resultados a omitir
orderBy UserOrderByInput No Orden de clasificación (ver abajo)

projectUserList

Lista todos los usuarios en un proyecto específico.

Parámetros de Entrada

Parámetro Tipo Requerido Descripción
projectId String! ✅ Sí ID o slug del proyecto
search String No Buscar por nombre o correo electrónico
first Int No Número de resultados (máx: 200)
after String No Cursor para paginación
orderBy UserOrderByInput No Orden de clasificación

user

Recupera un solo usuario por ID.

Parámetros de Entrada

Parámetro Tipo Requerido Descripción
id String! ✅ Sí ID de usuario

Opciones de Ordenación

UserOrderByInput Valores

Valor Descripción
createdAt_ASC Ordenar por fecha de registro (más antiguo primero)
createdAt_DESC Ordenar por fecha de registro (más reciente primero)
lastActiveAt_ASC Ordenar por última actividad (más antigua primero)
lastActiveAt_DESC Ordenar por última actividad (más reciente primero)
firstName_ASC Ordenar por nombre (A-Z)
firstName_DESC Ordenar por nombre (Z-A)
lastName_ASC Ordenar por apellido (A-Z)
lastName_DESC Ordenar por apellido (Z-A)
email_ASC Ordenar por dirección de correo electrónico (A-Z)
email_DESC Ordenar por dirección de correo electrónico (Z-A)
username_ASC Ordenar por nombre de usuario (A-Z)
username_DESC Ordenar por nombre de usuario (Z-A)
jobTitle_ASC Ordenar por título del trabajo (A-Z)
jobTitle_DESC Ordenar por título del trabajo (Z-A)

Campos de Respuesta

Objeto Usuario

Campo Tipo Descripción
id String! Identificador único del usuario
uid String! UID de autenticación de Firebase
username String! Nombre de usuario elegido por el usuario
email String! Dirección de correo electrónico (visible solo para el PROPIETARIO/ADMIN)
firstName String Nombre
lastName String Apellido
fullName String Nombre completo (nombre y apellido combinados)
jobTitle String Título profesional
phoneNumber String Número de contacto
dateOfBirth DateTime Fecha de nacimiento
isEmailVerified Boolean! Estado de verificación de correo electrónico
lastActiveAt DateTime Marca de tiempo de la última actividad
createdAt DateTime! Fecha de creación de la cuenta
updatedAt DateTime! Última actualización del perfil
isOnline Boolean! Estado en línea actual
timezone String Zona horaria del usuario
locale String Preferencia de idioma
theme JSON Preferencias de tema de UI
image Image Objeto de imagen de perfil

Campos Adicionales de Usuario del Proyecto

Al listar usuarios de proyectos, están disponibles campos adicionales:

Campo Tipo Descripción
accessLevel UserAccessLevel! Rol del usuario en el proyecto
customRole ProjectUserRole Detalles del rol personalizado si corresponde
joinedAt DateTime! Cuándo se unió el usuario al proyecto

Información de Paginación

Campo Tipo Descripción
totalItems Int! Número total de usuarios
totalPages Int Total de páginas (para paginación por desplazamiento)
page Int Número de página actual
perPage Int Elementos por página
hasNextPage Boolean! Más resultados disponibles
hasPreviousPage Boolean! Resultados anteriores disponibles
startCursor String Cursor del primer elemento
endCursor String Cursor del último elemento

Permisos Requeridos

Consulta Permiso Requerido
companyUserList Any authenticated user in the company
projectUserList Any project member (including VIEW_ONLY)
user Any authenticated user

Respuestas de Error

Empresa No Encontrada

{
  "errors": [{
    "message": "Company not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

Proyecto No Encontrado

{
  "errors": [{
    "message": "Project not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Acceso No Autorizado

{
  "errors": [{
    "message": "You don't have access to this resource",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

Notas Importantes

  • Rendimiento: Utilice la paginación para listas de usuarios grandes (máx. 200 usuarios por solicitud)
  • Búsqueda: Busca en los campos de nombre, apellido y correo electrónico
  • Privacidad del Correo Electrónico: Las direcciones de correo electrónico solo son visibles para usuarios con niveles de acceso de PROPIETARIO o ADMIN
  • Estado en Línea: isOnline se actualiza en tiempo real a través de conexiones WebSocket
  • Imágenes de Perfil: Utilice el image.variants campo para diferentes tamaños
  • Filtrado: El notInProjectId parámetro es útil al construir interfaces de selección de usuarios
  • Niveles de Acceso: Las listas de usuarios de proyectos incluyen información de rol no disponible en las listas de empresas

Operaciones Relacionadas

Asistente IA

Las respuestas son generadas por IA y pueden contener errores.

¿Cómo puedo ayudarte?

Pregúntame cualquier cosa sobre Blue o esta documentación.

Enter para enviar • Shift+Enter para nueva línea • ⌘I para abrir