당신이 볼 수 있거나 수정할 수 있는 대시보드의 페이지네이션된 목록을 가져옵니다.


대시보드 목록

당신이 볼 수 있는 대시보드를 가져옵니다. 여기에는 당신이 생성한 대시보드와 당신과 공유된 대시보드가 포함됩니다.

기본 예제

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를 눌러 열기