favoriteChatsEvents method
- FavoriteChatsListVersion? ver()
Subscribes to FavoriteChatsEvents of all Chats of the authenticated MyUser.
Authentication
Mandatory.
Initialization
Once this subscription is initialized completely, it immediately emits
SubscriptionInitialized.
If nothing has been emitted for a long period of time after establishing this subscription (while not being completed), it should be considered as an unexpected server error. This fact can be used on a client side to decide whether this subscription has been initialized successfully.
Result
If ver argument is not specified (or is null) an initial state of the
favorite Chats list will be emitted after SubscriptionInitialized and
before any other FavoriteChatsEvents (and won't be emitted ever again
until this subscription completes). This allows to skip doing
Query.favoriteChats before establishing this subscription.
If the specified ver is not fresh (was queried quite a time ago), it may
become stale, so this subscription will return STALE_VERSION error on
initialization. In such case:
- either a fresh version should be obtained via Query.favoriteChats;
- or a re-subscription should be done without specifying a verargument (so the freshvermay be obtained in the emitted initial state of the favorite Chats list).
Completion
Infinite.
Completes requiring a re-subscription when:
- Authenticated Session expires (SESSION_EXPIREDerror is emitted).
- An error occurs on the server (error is emitted).
- The server is shutting down or becoming unreachable (unexpectedly completes after initialization).
Idempotency
It's possible that in rare scenarios this subscription could emit an event
which have already been applied to the state of some Chat, so a client
side is expected to handle all the events idempotently considering the
Chat.ver.
Implementation
Stream<QueryResult> favoriteChatsEvents(
  FavoriteChatsListVersion? Function() ver,
) {
  Log.debug('favoriteChatsEvents(ver)', '$runtimeType');
  final variables = FavoriteChatsEventsArguments(ver: ver());
  return client.subscribe(
    SubscriptionOptions(
      operationName: 'FavoriteChatsEvents',
      document: FavoriteChatsEventsSubscription(
        variables: variables,
      ).document,
      variables: variables.toJson(),
    ),
    ver: ver,
  );
}