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;
}
}