フィルタリングとページネーションを使用して、企業やプロジェクトのユーザーのリストを取得します。
ユーザーのリスト
Blueは、企業全体、プロジェクト固有、または個別のユーザー検索の異なるスコープでユーザーをリストするための複数のクエリを提供します。これらのクエリは、ページネーション、フィルタリング、およびソートをサポートしており、大規模なユーザーベースを効率的に管理できます。
基本例 - 企業ユーザー
企業内のすべてのユーザーをリストします:
query ListCompanyUsers {
companyUserList(companyId: "acme-corp") {
users {
id
email
fullName
jobTitle
lastActiveAt
}
pageInfo {
totalItems
hasNextPage
}
}
}
高度な例 - フィルタリングされたプロジェクトユーザー
検索とページネーションを使用してプロジェクトユーザーをリストします:
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
}
}
}
利用可能なクエリ
companyUserList
オプションのフィルタリングを使用して、企業内のすべてのユーザーをリストします。
入力パラメータ
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
companyId |
String! | ✅ はい | 企業IDまたはスラッグ |
notInProjectId |
String | いいえ | このプロジェクトにすでにいるユーザーを除外 |
search |
String | いいえ | 名前またはメールで検索 |
first |
Int | いいえ | 返す結果の数(前方ページネーション) |
after |
String | いいえ | 前方ページネーションのカーソル |
last |
Int | いいえ | 返す結果の数(後方ページネーション) |
before |
String | いいえ | 後方ページネーションのカーソル |
skip |
Int | いいえ | スキップする結果の数 |
orderBy |
UserOrderByInput | いいえ | ソート順(下記参照) |
projectUserList
特定のプロジェクト内のすべてのユーザーをリストします。
入力パラメータ
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
projectId |
String! | ✅ はい | プロジェクトIDまたはスラッグ |
search |
String | いいえ | 名前またはメールで検索 |
first |
Int | いいえ | 結果の数(最大:200) |
after |
String | いいえ | ページネーションのカーソル |
orderBy |
UserOrderByInput | いいえ | ソート順 |
user
IDによって単一のユーザーを取得します。
入力パラメータ
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
id |
String! | ✅ はい | ユーザーID |
ソートオプション
UserOrderByInput 値
値 | 説明 |
---|---|
createdAt_ASC |
登録日でソート(古い順) |
createdAt_DESC |
登録日でソート(新しい順) |
lastActiveAt_ASC |
最後のアクティビティでソート(古い順) |
lastActiveAt_DESC |
最後のアクティビティでソート(新しい順) |
firstName_ASC |
名字でソート(A-Z) |
firstName_DESC |
名字でソート(Z-A) |
lastName_ASC |
姓でソート(A-Z) |
lastName_DESC |
姓でソート(Z-A) |
email_ASC |
メールアドレスでソート(A-Z) |
email_DESC |
メールアドレスでソート(Z-A) |
username_ASC |
ユーザー名でソート(A-Z) |
username_DESC |
ユーザー名でソート(Z-A) |
jobTitle_ASC |
職位でソート(A-Z) |
jobTitle_DESC |
職位でソート(Z-A) |
レスポンスフィールド
ユーザーオブジェクト
フィールド | タイプ | 説明 |
---|---|---|
id |
String! | ユニークなユーザー識別子 |
uid |
String! | Firebase認証UID |
username |
String! | ユーザーが選択したユーザー名 |
email |
String! | メールアドレス(オーナー/管理者のみが表示) |
firstName |
String | 名 |
lastName |
String | 姓 |
fullName |
String | 結合された名と姓 |
jobTitle |
String | 職業名 |
phoneNumber |
String | 連絡先番号 |
dateOfBirth |
DateTime | 生年月日 |
isEmailVerified |
Boolean! | メール確認状況 |
lastActiveAt |
DateTime | 最後のアクティビティのタイムスタンプ |
createdAt |
DateTime! | アカウント作成日 |
updatedAt |
DateTime! | 最後のプロフィール更新 |
isOnline |
Boolean! | 現在のオンライン状況 |
timezone |
String | ユーザーのタイムゾーン |
locale |
String | 言語の好み |
theme |
JSON | UIテーマの好み |
image |
Image | プロフィール画像オブジェクト |
プロジェクトユーザー追加フィールド
プロジェクトユーザーをリストする際に、追加のフィールドが利用可能です:
フィールド | タイプ | 説明 |
---|---|---|
accessLevel |
UserAccessLevel! | プロジェクト内のユーザーの役割 |
customRole |
ProjectUserRole | カスタム役割の詳細(該当する場合) |
joinedAt |
DateTime! | ユーザーがプロジェクトに参加した日時 |
ページネーション情報
フィールド | タイプ | 説明 |
---|---|---|
totalItems |
Int! | ユーザーの総数 |
totalPages |
Int | 総ページ数(オフセットページネーション用) |
page |
Int | 現在のページ番号 |
perPage |
Int | ページあたりのアイテム数 |
hasNextPage |
Boolean! | さらに結果が利用可能 |
hasPreviousPage |
Boolean! | 前の結果が利用可能 |
startCursor |
String | 最初のアイテムカーソル |
endCursor |
String | 最後のアイテムカーソル |
必要な権限
クエリ | 必要な権限 |
---|---|
companyUserList |
Any authenticated user in the company |
projectUserList |
Any project member (including VIEW_ONLY) |
user |
Any authenticated user |
エラー応答
企業が見つかりません
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
プロジェクトが見つかりません
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
認証されていないアクセス
{
"errors": [{
"message": "You don't have access to this resource",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
重要な注意事項
- パフォーマンス: 大規模なユーザーリストにはページネーションを使用してください(リクエストごとに最大200ユーザー)
- 検索: 名、姓、メールフィールドを横断して検索します
- メールプライバシー: メールアドレスは、オーナーまたは管理者のアクセスレベルを持つユーザーにのみ表示されます
- オンライン状況:
isOnline
はWebSocket接続を介してリアルタイムで更新されます - プロフィール画像: 異なるサイズには
image.variants
フィールドを使用します - フィルタリング:
notInProjectId
パラメータは、ユーザー選択インターフェースを構築する際に便利です - アクセスレベル: プロジェクトユーザーリストには、企業リストでは利用できない役割情報が含まれています