Mengambil daftar pengguna di perusahaan atau proyek dengan penyaringan dan paginasi.


Daftar Pengguna

Blue menyediakan beberapa kueri untuk mendaftar pengguna di berbagai lingkup - seluruh perusahaan, spesifik proyek, atau pencarian pengguna individu. Kueri ini mendukung paginasi, penyaringan, dan pengurutan untuk mengelola basis pengguna yang besar secara efisien.

Contoh Dasar - Pengguna Perusahaan

Daftar semua pengguna di sebuah perusahaan:

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

Contoh Lanjutan - Pengguna Proyek yang Disaring

Daftar pengguna proyek dengan pencarian dan paginasi:

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

Kueri yang Tersedia

companyUserList

Mendaftar semua pengguna di sebuah perusahaan dengan penyaringan opsional.

Parameter Masukan

Parameter Tipe Diperlukan Deskripsi
companyId String! ✅ Ya ID perusahaan atau slug
notInProjectId String Tidak Mengecualikan pengguna yang sudah ada di proyek ini
search String Tidak Mencari berdasarkan nama atau email
first Int Tidak Jumlah hasil yang akan dikembalikan (paginasi maju)
after String Tidak Kursor untuk paginasi maju
last Int Tidak Jumlah hasil yang akan dikembalikan (paginasi mundur)
before String Tidak Kursor untuk paginasi mundur
skip Int Tidak Jumlah hasil yang akan dilewati
orderBy UserOrderByInput Tidak Urutan pengurutan (lihat di bawah)

projectUserList

Mendaftar semua pengguna di proyek tertentu.

Parameter Masukan

Parameter Tipe Diperlukan Deskripsi
projectId String! ✅ Ya ID proyek atau slug
search String Tidak Mencari berdasarkan nama atau email
first Int Tidak Jumlah hasil (maks: 200)
after String Tidak Kursor untuk paginasi
orderBy UserOrderByInput Tidak Urutan pengurutan

user

Mengambil satu pengguna berdasarkan ID.

Parameter Masukan

Parameter Tipe Diperlukan Deskripsi
id String! ✅ Ya ID Pengguna

Opsi Pengurutan

UserOrderByInput Values

Nilai Deskripsi
createdAt_ASC Urut berdasarkan tanggal pendaftaran (terlama terlebih dahulu)
createdAt_DESC Urut berdasarkan tanggal pendaftaran (terbaru terlebih dahulu)
lastActiveAt_ASC Urut berdasarkan aktivitas terakhir (terlama terlebih dahulu)
lastActiveAt_DESC Urut berdasarkan aktivitas terakhir (terbaru terlebih dahulu)
firstName_ASC Urut berdasarkan nama depan (A-Z)
firstName_DESC Urut berdasarkan nama depan (Z-A)
lastName_ASC Urut berdasarkan nama belakang (A-Z)
lastName_DESC Urut berdasarkan nama belakang (Z-A)
email_ASC Urut berdasarkan alamat email (A-Z)
email_DESC Urut berdasarkan alamat email (Z-A)
username_ASC Urut berdasarkan nama pengguna (A-Z)
username_DESC Urut berdasarkan nama pengguna (Z-A)
jobTitle_ASC Urut berdasarkan jabatan (A-Z)
jobTitle_DESC Urut berdasarkan jabatan (Z-A)

Bidang Respons

Objek Pengguna

Bidang Tipe Deskripsi
id String! Pengidentifikasi pengguna yang unik
uid String! UID autentikasi Firebase
username String! Nama pengguna yang dipilih oleh pengguna
email String! Alamat email (hanya terlihat oleh PEMILIK/ADMIN)
firstName String Nama depan
lastName String Nama belakang
fullName String Gabungan nama depan dan nama belakang
jobTitle String Jabatan profesional
phoneNumber String Nomor kontak
dateOfBirth DateTime Tanggal lahir
isEmailVerified Boolean! Status verifikasi email
lastActiveAt DateTime Timestamp aktivitas terakhir
createdAt DateTime! Tanggal pembuatan akun
updatedAt DateTime! Pembaruan profil terakhir
isOnline Boolean! Status online saat ini
timezone String Zona waktu pengguna
locale String Preferensi bahasa
theme JSON Preferensi tema UI
image Image Objek gambar profil

Bidang Tambahan Pengguna Proyek

Saat mendaftar pengguna proyek, bidang tambahan tersedia:

Bidang Tipe Deskripsi
accessLevel UserAccessLevel! Peran pengguna dalam proyek
customRole ProjectUserRole Detail peran kustom jika berlaku
joinedAt DateTime! Saat pengguna bergabung dengan proyek

Info Paginasi

Bidang Tipe Deskripsi
totalItems Int! Jumlah total pengguna
totalPages Int Total halaman (untuk paginasi offset)
page Int Nomor halaman saat ini
perPage Int Item per halaman
hasNextPage Boolean! Hasil lebih banyak tersedia
hasPreviousPage Boolean! Hasil sebelumnya tersedia
startCursor String Kursor item pertama
endCursor String Kursor item terakhir

Izin yang Diperlukan

Kueri Izin yang Diperlukan
companyUserList Any authenticated user in the company
projectUserList Any project member (including VIEW_ONLY)
user Any authenticated user

Respons Kesalahan

Perusahaan Tidak Ditemukan

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

Proyek Tidak Ditemukan

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

Akses Tidak Sah

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

Catatan Penting

  • Kinerja: Gunakan paginasi untuk daftar pengguna besar (maks 200 pengguna per permintaan)
  • Pencarian: Mencari di seluruh nama depan, nama belakang, dan kolom email
  • Privasi Email: Alamat email hanya terlihat oleh pengguna dengan level akses PEMILIK atau ADMIN
  • Status Online: isOnline diperbarui secara real-time melalui koneksi WebSocket
  • Gambar Profil: Gunakan bidang image.variants untuk ukuran yang berbeda
  • Penyaringan: Parameter notInProjectId berguna saat membangun antarmuka pemilihan pengguna
  • Level Akses: Daftar pengguna proyek mencakup informasi peran yang tidak tersedia di daftar perusahaan

Operasi Terkait

Asisten AI

Respon dihasilkan menggunakan AI dan mungkin mengandung kesalahan.

Bagaimana saya bisa membantu Anda?

Tanyakan apa saja tentang Blue atau dokumentasi ini.

Masukkan untuk mengirim • Shift+Masukkan untuk baris baru • ⌘I untuk membuka