更新
更旧
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);
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
}
@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
}
}
}
}
fragment PageInfo on PageInfo {
hasNextPage
endCursor
}
""",
"variables": {"afterCursor": afterCursor, "fullPath": fullPath, "id": iterationId, "firstPageSize": size}
};