Skip to content
代码片段 群组 项目
从无法访问的项目中派生。
subgroup_iteration_issues_model.dart 2.09 KiB
import 'package:jihu_gitlab_app/core/domain/issue.dart';
import 'package:jihu_gitlab_app/modules/issues/list/group_issues_fetcher.dart';
import 'package:jihu_gitlab_app/modules/iteration/details/iteration_model.dart';

class SubgroupIterationIssuesModel extends IterationIssuesModel {
  late final GroupIssuesFetcher groupIssuesFetcher;

  @override
  void init(Map arguments) {
    super.init(arguments);
    groupIssuesFetcher = GroupIssuesFetcher(groupFullPath);
  }

  @override
  Future<List<Issue>> getIterationIssues() async {
    return groupIssuesFetcher.fetchIssues(() => subgroupIterationIssuesRequestBody("", groupFullPath, id, 100));
  }
}

Map<String, dynamic> subgroupIterationIssuesRequestBody(String afterCursor, String fullPath, String iterationId, int size) => {
      "query": """
        query iterationIssues(\$fullPath: ID!, \$id: ID!, \$afterCursor: String = "", \$firstPageSize: Int) {
          group(fullPath: \$fullPath) {
            id
            path
            fullPath
            name
            issues(
              iterationId: [\$id]
              sort: RELATIVE_POSITION_ASC,
              after: \$afterCursor
              first: \$firstPageSize
            ) {
              ...IterationIssues
            }
          }
        }
        
        fragment IterationIssues on IssueConnection {
          count
          pageInfo {
            ...PageInfo
          }
          nodes {
            id
            iid
            title
            webUrl
            state
            projectId
            epic {
              title
            }
            weight
            author {
              id
              name
              username
              avatarUrl
            }
            assignees {
              nodes {
                id
                name
                username
                avatarUrl
              }
            }
          }
        }