fetchStatesByIds method

  1. @override
Future<TrackerResult<List<Issue>>> fetchStatesByIds(
  1. List<String> issueIds
)
override

Returns minimal normalized issues for the supplied issueIds.

Used by reconciliation. Implementations MAY return a subset when issues no longer exist, and SHOULD include enough state for the scheduler to classify the issue (state, identifier, blockers when relevant).

Implementation

@override
Future<TrackerResult<List<Issue>>> fetchStatesByIds(
  List<String> issueIds,
) async {
  if (issueIds.isEmpty) {
    return const TrackerSuccess<List<Issue>>(<Issue>[]);
  }

  final result = await _loadAllIssues();
  return result.fold(TrackerError<List<Issue>>.new, (issues) {
    final wanted = issueIds.toSet();
    final filtered = issues
        .where((i) => wanted.contains(i.id))
        .toList(growable: false);
    return TrackerSuccess<List<Issue>>(filtered);
  });
}