diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index 4b409536..33a95b03 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -1,3 +1,9 @@ +## Upcoming + +✅ Added + +- Added hard delete functionality. + ## 3.2.0 🐞 Fixed diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index e7c2d459..ab4f17c3 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -648,7 +648,7 @@ class Channel { } /// Deletes the [message] from the channel. - Future deleteMessage(Message message) async { + Future deleteMessage(Message message, {bool? hard}) async { // Directly deleting the local messages which are not yet sent to server if (message.status == MessageSendingStatus.sending || message.status == MessageSendingStatus.failed) { @@ -675,7 +675,7 @@ class Channel { state?.addMessage(message); - final response = await _client.deleteMessage(message.id); + final response = await _client.deleteMessage(message.id, hard: hard); state?.addMessage(message.copyWith(status: MessageSendingStatus.sent)); diff --git a/packages/stream_chat/lib/src/client/client.dart b/packages/stream_chat/lib/src/client/client.dart index c9bdebc1..ef03288d 100644 --- a/packages/stream_chat/lib/src/client/client.dart +++ b/packages/stream_chat/lib/src/client/client.dart @@ -1213,8 +1213,8 @@ class StreamChatClient { ); /// Deletes the given message - Future deleteMessage(String messageId) => - _chatApi.message.deleteMessage(messageId); + Future deleteMessage(String messageId, {bool? hard}) => + _chatApi.message.deleteMessage(messageId, hard: hard); /// Get a message by [messageId] Future getMessage(String messageId) => diff --git a/packages/stream_chat/lib/src/core/api/message_api.dart b/packages/stream_chat/lib/src/core/api/message_api.dart index 17269820..0fdb41eb 100644 --- a/packages/stream_chat/lib/src/core/api/message_api.dart +++ b/packages/stream_chat/lib/src/core/api/message_api.dart @@ -80,10 +80,14 @@ class MessageApi { /// Deletes the given [messageId] Future deleteMessage( - String messageId, - ) async { + String messageId, { + bool? hard, + }) async { final response = await _client.delete( '/messages/$messageId', + queryParameters: { + if (hard != null) 'hard': hard, + }, ); return EmptyResponse.fromJson(response.data); }