Files
TubeCards/lib/graphql/update_cache_handlers/insert_deck_invite_handler.dart
2022-04-09 15:59:59 +02:00

40 lines
1.1 KiB
Dart

import 'package:ferry/typed_links.dart';
import '../fragments/__generated__/deck_fragment.data.gql.dart';
import '../fragments/__generated__/deck_fragment.req.gql.dart';
import '../mutations/__generated__/insert_deck_invite.data.gql.dart';
import '../mutations/__generated__/insert_deck_invite.var.gql.dart';
const String insertDeckInviteHandlerKey = 'insertDeckInviteHandler';
void insertDeckInviteHandler(
CacheProxy proxy,
OperationResponse<GInsertDeckInviteData, GInsertDeckInviteVars> response,
) {
if (response.hasErrors) {
return;
}
const updateMethods = [
_updateDeckFragment,
];
for (final updateMethod in updateMethods) {
updateMethod(proxy, response.data!.insertDeckInvite.deckInvite);
}
}
void _updateDeckFragment(
CacheProxy proxy,
GInsertDeckInviteData_insertDeckInvite_deckInvite deckInvite,
) {
final request =
GDeckFragmentReq((u) => u.idFields = {'id': deckInvite.deck.id});
final fragment = proxy.readFragment(request)!;
final response = fragment.rebuild((b) => b.deckInvites
.add(GDeckFragmentData_deckInvites.fromJson(deckInvite.toJson())!));
proxy.writeFragment(request, response);
}