unlike method Null safety

Future<bool> unlike(
  1. {required ContentElement content}
)

Implementation

Future<bool> unlike({required final ContentElement content}) async {
  final gqlQueryString = '''
      mutation UnlikeIt {
        unlike(
          id: ${content.id}
        ) {
          ${ContentElementGqlEntity.gqlQueryFragment}
        }
      }
  ''';

  try {
    final queryResult = await graphQLClient
        .mutate<void>(MutationOptions(document: gql(gqlQueryString)));

    if (queryResult.hasException) {
      logger?.e(queryResult.exception.toString());
      return false;
    }

    final contentElementGql = ContentElementGqlEntity.fromJson(
        queryResult.data!['unlike'] as Map<String, dynamic>);
    if (contentElementGql != null &&
        !_contentElementStreamController.isClosed) {
      _contentElementStreamController.add(
        [
          EntityUpdated(
            contentElementGql.toContentElement(),
            content,
          )
        ].toBuiltList(),
      );
    }

    return true;
  } catch (e, stackTrace) {
    logger?.e('Could not unlike content element', e, stackTrace);
    return false;
  }
}