Recupera elenchi di utenti in aziende o progetti con filtri e paginazione.


Elenco Utenti

Blue fornisce più query per elencare gli utenti a diversi livelli - a livello aziendale, specifico per progetto o ricerca di singoli utenti. Queste query supportano la paginazione, il filtraggio e l'ordinamento per gestire in modo efficiente grandi basi di utenti.

Esempio Base - Utenti Aziendali

Elenca tutti gli utenti in un'azienda:

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

Esempio Avanzato - Utenti di Progetto Filtrati

Elenca gli utenti di progetto con ricerca e paginazione:

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
    }
  }
}

Query Disponibili

companyUserList

Elenca tutti gli utenti in un'azienda con filtraggio opzionale.

Parametri di Input

Parametro Tipo Richiesto Descrizione
companyId String! ✅ Sì ID o slug dell'azienda
notInProjectId String No Escludi utenti già in questo progetto
search String No Cerca per nome o email
first Int No Numero di risultati da restituire (paginazione in avanti)
after String No Cursore per la paginazione in avanti
last Int No Numero di risultati da restituire (paginazione all'indietro)
before String No Cursore per la paginazione all'indietro
skip Int No Numero di risultati da saltare
orderBy UserOrderByInput No Ordine di ordinamento (vedi sotto)

projectUserList

Elenca tutti gli utenti in un progetto specifico.

Parametri di Input

Parametro Tipo Richiesto Descrizione
projectId String! ✅ Sì ID o slug del progetto
search String No Cerca per nome o email
first Int No Numero di risultati (max: 200)
after String No Cursore per la paginazione
orderBy UserOrderByInput No Ordine di ordinamento

user

Recupera un singolo utente per ID.

Parametri di Input

Parametro Tipo Richiesto Descrizione
id String! ✅ Sì ID utente

Opzioni di Ordinamento

UserOrderByInput Valori

Valore Descrizione
createdAt_ASC Ordina per data di registrazione (più vecchi prima)
createdAt_DESC Ordina per data di registrazione (più recenti prima)
lastActiveAt_ASC Ordina per ultima attività (più vecchi prima)
lastActiveAt_DESC Ordina per ultima attività (più recenti prima)
firstName_ASC Ordina per nome (A-Z)
firstName_DESC Ordina per nome (Z-A)
lastName_ASC Ordina per cognome (A-Z)
lastName_DESC Ordina per cognome (Z-A)
email_ASC Ordina per indirizzo email (A-Z)
email_DESC Ordina per indirizzo email (Z-A)
username_ASC Ordina per nome utente (A-Z)
username_DESC Ordina per nome utente (Z-A)
jobTitle_ASC Ordina per titolo professionale (A-Z)
jobTitle_DESC Ordina per titolo professionale (Z-A)

Campi di Risposta

Oggetto Utente

Campo Tipo Descrizione
id String! Identificatore unico dell'utente
uid String! UID di autenticazione Firebase
username String! Nome utente scelto dall'utente
email String! Indirizzo email (visibile solo a OWNER/ADMIN)
firstName String Nome
lastName String Cognome
fullName String Nome e cognome combinati
jobTitle String Titolo professionale
phoneNumber String Numero di contatto
dateOfBirth DateTime Data di nascita
isEmailVerified Boolean! Stato di verifica email
lastActiveAt DateTime Timestamp dell'ultima attività
createdAt DateTime! Data di creazione dell'account
updatedAt DateTime! Ultimo aggiornamento del profilo
isOnline Boolean! Stato online attuale
timezone String Fuso orario dell'utente
locale String Preferenza di lingua
theme JSON Preferenze tema UI
image Image Oggetto immagine del profilo

Campi Aggiuntivi Utente di Progetto

Quando si elencano gli utenti di progetto, sono disponibili campi aggiuntivi:

Campo Tipo Descrizione
accessLevel UserAccessLevel! Ruolo dell'utente nel progetto
customRole ProjectUserRole Dettagli ruolo personalizzato se applicabile
joinedAt DateTime! Quando l'utente si è unito al progetto

Informazioni sulla Paginazione

Campo Tipo Descrizione
totalItems Int! Numero totale di utenti
totalPages Int Pagine totali (per paginazione offset)
page Int Numero della pagina corrente
perPage Int Elementi per pagina
hasNextPage Boolean! Ulteriori risultati disponibili
hasPreviousPage Boolean! Risultati precedenti disponibili
startCursor String Cursore del primo elemento
endCursor String Cursore dell'ultimo elemento

Permessi Richiesti

Query Permesso Richiesto
companyUserList Any authenticated user in the company
projectUserList Any project member (including VIEW_ONLY)
user Any authenticated user

Risposte di Errore

Azienda Non Trovata

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

Progetto Non Trovato

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

Accesso Non Autorizzato

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

Note Importanti

  • Prestazioni: Utilizza la paginazione per elenchi di utenti grandi (max 200 utenti per richiesta)
  • Ricerca: Cerca nei campi nome, cognome e email
  • Privacy Email: Gli indirizzi email sono visibili solo agli utenti con livelli di accesso OWNER o ADMIN
  • Stato Online: isOnline si aggiorna in tempo reale tramite connessioni WebSocket
  • Immagini del Profilo: Utilizza il campo image.variants per dimensioni diverse
  • Filtraggio: Il parametro notInProjectId è utile quando si costruiscono interfacce di selezione utenti
  • Livelli di Accesso: Le liste utenti di progetto includono informazioni sui ruoli non disponibili nelle liste aziendali

Operazioni Correlate

Assistente AI

Le risposte sono generate utilizzando l'IA e potrebbero contenere errori.

Come posso aiutarti?

Chiedimi qualsiasi cosa su Blue o su questa documentazione.

Invia per inviare • Maiusc+Invio per una nuova riga • ⌘I per aprire