useDirectLink method

Future<UseDirectLink$Mutation$UseDirectLink$UseDirectLinkOk> useDirectLink(
  1. DirectLinkSlug slug
)

Uses the specified DirectLink by the authenticated MyUser, creating a new Chat-dialog, or joining an existing Chat-group.

Authentication

Mandatory.

Result

Always returns the created or modified Chat.

Only the following ChatEvent may be produced on success:

Idempotent

Succeeds as no-op (and returns no ChatEvent) if the authenticated MyUser is already a member of the Chat-group or has already a created Chat-dialog with the User the specified DirectLink leads to.

Implementation

Future<UseDirectLink$Mutation$UseDirectLink$UseDirectLinkOk> useDirectLink(
  DirectLinkSlug slug,
) async {
  Log.debug('useDirectLink($slug)', '$runtimeType');

  final variables = UseDirectLinkArguments(slug: slug);
  final QueryResult result = await client.mutate(
    MutationOptions(
      operationName: 'UseDirectLink',
      document: UseDirectLinkMutation(variables: variables).document,
      variables: variables.toJson(),
    ),
    onException: (data) => UseDirectLinkException(
      (UseDirectLink$Mutation.fromJson(data).useDirectLink
              as UseDirectLink$Mutation$UseDirectLink$UseDirectLinkError)
          .code,
    ),
  );
  return (UseDirectLink$Mutation.fromJson(result.data!).useDirectLink
      as UseDirectLink$Mutation$UseDirectLink$UseDirectLinkOk);
}