从无法访问的项目中派生。
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
}
}
}
}