Files
TubeCards/lib/graphql/update_cache_handlers/deck_members_handler.dart
2022-10-16 12:35:41 +02:00

36 lines
1.1 KiB
Dart

import 'package:ferry/typed_links.dart';
import '../../services/tubecards/deck_member_service.dart';
import '../queries/__generated__/deck_member.data.gql.dart';
import '../queries/__generated__/deck_member.req.gql.dart';
import '../queries/__generated__/deck_members.data.gql.dart';
import '../queries/__generated__/deck_members.var.gql.dart';
const String deckMembersHandlerKey = 'deckMembersHandler';
void deckMembersHandler(
CacheProxy proxy,
OperationResponse<GDeckMembersData, GDeckMembersVars> response,
) {
if (response.hasErrors || response.dataSource == DataSource.Cache) {
return;
}
final deckMembers = response.data!.deck.deckMemberConnection.nodes;
final lastPage = deckMembers.reversed.take(deckMembersPageSize);
for (final deckMember in lastPage) {
final request = GDeckMemberReq(
(b) => b
..vars.deckId = deckMember.deck.id
..vars.userId = deckMember.user.id,
);
proxy.writeQuery(
request,
GDeckMemberData.fromJson(
{'__typename': 'DeckMember', 'deckMember': deckMember.toJson()},
),
);
}
}