deleteMoodEntry method Null safety
- {required MoodEntry entry}
Deletes entry from the backend. Assumes that entry already exists.
Will return true if entry was deleted, false otherwise.
Implementation
Future<bool> deleteMoodEntry({required MoodEntry entry}) async {
final gqlQueryString = '''
mutation DeleteMoodEntry {
deleteMoodEntry(
input: {
where: { id: "${entry.id}" }
}
) {
moodEntry {
${MoodEntryGqlEntity.gqlQueryFragment}
}
}
}
''';
try {
final queryResult = await graphQLClient.mutate<void>(MutationOptions(
document: gql(gqlQueryString),
fetchPolicy: FetchPolicy.networkOnly,
));
if (queryResult.hasException) {
logger?.e(queryResult.exception.toString());
return false;
}
} catch (e, stackTrace) {
logger?.e('Could not update mood entry', e, stackTrace);
return false;
}
if (!_lastUpdatedMoodStreamController.isClosed) {
_lastUpdatedMoodStreamController
.add([EntityDeleted(entry)].toBuiltList());
}
return true;
}