表示または変更するアクセス権のあるダッシュボードのページネーションされたリストを取得します


ダッシュボードの一覧

表示するアクセス権のあるダッシュボードを取得します。これには、作成したダッシュボードと共有されたダッシュボードが含まれます。

基本的な例

query ListDashboards {
  dashboards(filter: { companyId: "company_123" }) {
    items {
      id
      title
      createdBy {
        id
        name
        email
      }
      createdAt
      updatedAt
    }
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
  }
}

高度な例

query ListDashboardsAdvanced {
  dashboards(
    filter: { 
      companyId: "company_123"
      projectId: "proj_456"  # Optional: filter by project
    }
    sort: [updatedAt_DESC, title_ASC]
    skip: 0
    take: 10
  ) {
    items {
      id
      title
      createdBy {
        id
        name
        email
      }
      dashboardUsers {
        id
        role
        user {
          id
          name
          email
        }
      }
      createdAt
      updatedAt
    }
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
  }
}

入力パラメータ

DashboardFilterInput

パラメータ 必須 説明
companyId String! ✅ はい ダッシュボードをフィルタリングするための会社ID
projectId String いいえ ダッシュボードをフィルタリングするためのオプションのプロジェクトID

ソートオプション

ソート値 説明
title_ASC タイトルの昇順でソート
title_DESC タイトルの降順でソート
createdBy_ASC 作成者の昇順でソート
createdBy_DESC 作成者の降順でソート
updatedAt_ASC 更新時間の昇順でソート
updatedAt_DESC 更新時間の降順でソート(デフォルト)

ページネーションパラメータ

パラメータ デフォルト 説明
skip Int 0 スキップするアイテムの数
take Int 20 返すアイテムの数(最大100)

レスポンスフィールド

DashboardPagination

フィールド 説明
items [Dashboard!]! ダッシュボードオブジェクトの配列
pageInfo PageInfo! ページネーション情報

Dashboard

フィールド 説明
id ID! ダッシュボードのユニークな識別子
title String! ダッシュボードの表示名
createdBy User! ダッシュボードを作成したユーザー
dashboardUsers [DashboardUser!] このダッシュボードにアクセスできるユーザー
createdAt DateTime! ダッシュボードが作成された日時
updatedAt DateTime! ダッシュボードが最後に変更された日時

DashboardUser

フィールド 説明
id ID! ダッシュボードユーザーのユニークな識別子
role DashboardRole! ユーザーの役割(VIEWERまたはEDITOR)
user User! ユーザー情報

アクセス制御

ダッシュボードの可視性

あなたは以下のダッシュボードのみを見ることができます:

  • ダッシュボードの作成者
  • ダッシュボード共有を通じて明示的にアクセス権が付与された場合

必要な権限

  • 認証が必要: ログインしている必要があります
  • 会社アクセス: 指定された会社にアクセス権が必要です
  • プロジェクトアクセス: プロジェクトでフィルタリングする場合、そのプロジェクトにアクセス権が必要です

エラー応答

会社が見つかりません

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

プロジェクトが見つかりません

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

一般的な使用例

すべての会社ダッシュボードを一覧表示

query CompanyDashboards {
  dashboards(filter: { companyId: "company_123" }) {
    items {
      id
      title
      createdBy { name }
    }
  }
}

プロジェクト特有のダッシュボードを一覧表示

query ProjectDashboards {
  dashboards(filter: { 
    companyId: "company_123"
    projectId: "proj_456"
  }) {
    items {
      id
      title
    }
  }
}

ページネーションされたダッシュボードリスト

query PaginatedDashboards {
  dashboards(
    filter: { companyId: "company_123" }
    skip: 20
    take: 10
  ) {
    items {
      id
      title
    }
    pageInfo {
      hasNextPage
      hasPreviousPage
    }
  }
}

ベストプラクティス

パフォーマンス

  • 大規模なダッシュボードリストでは、パフォーマンス向上のためにページネーションを使用してください
  • アプリケーションで必要なフィールドのみをリクエストしてください
  • 頻繁にアクセスされるデータのためにダッシュボードリストをキャッシュすることを検討してください

フィルタリング

  • 適切なデータの分離を確保するために、常に会社でフィルタリングしてください
  • プロジェクト特有のダッシュボードを扱う際には、プロジェクトフィルタリングを使用してください
  • 結果を効率的に絞り込むためにフィルタを組み合わせてください

ソート

  • デフォルトのソートは updatedAt_DESC(最も最近更新されたものが最初)
  • アルファベット順の整理にはタイトルソートを使用してください
  • 複雑な並べ替えのニーズには複数のソート基準を組み合わせてください

関連操作

AIアシスタント

回答はAIを使用して生成されており、間違いが含まれる可能性があります。

どのようにお手伝いできますか?

Blueやこのドキュメントについて何でも聞いてください。

送信するにはEnterを押してください • 新しい行を作成するにはShift+Enterを押してください • ⌘Iで開く