// Removes all of the messages of the channel but doesn't affect the channel data or members
channelClient.truncate().enqueue { result ->
if (result is Result.Success) {
// Channel is truncated
} else {
// Handle Result.Failure
}
}
// Or with message parameter.
val message = Message(text = "Dear Everyone. The channel has been truncated.")
channelClient.truncate(systemMessage = message).enqueue { result ->
if (result is Result.Success) {
// Channel is truncated
} else {
// Handle Result.Failure
}
}Truncate Channel
Truncating a channel removes all messages but preserves the channel data and members. To delete both the channel and its messages, use Delete Channel instead.
Truncation can be performed client-side or server-side. Client-side truncation requires the TruncateChannel permission.
On server-side calls, use the user_id field to identify who performed the truncation.
By default, truncation hides messages. To permanently delete messages, set hard_delete to true.
Truncate a Channel
await channel.truncate();
// Or with parameters:
await channel.truncate({
'hard_delete': true,
'skip_push': false,
'message': {
'text': 'Dear Everyone. The channel has been truncated.'
'user_id': user['id']
}
});
// Setting user_id server side:
await channel.truncate({
'user_id': user['id']
});from getstream.models import MessageRequest
# Get a channel
channel = client.chat.channel("messaging", "general")
channel.truncate()
# Or with parameters:
channel.truncate(
hard_delete=True,
skip_push=True,
message=MessageRequest(
text="Dear Everyone. The channel has been truncated.",
user_id=random_user["id"],
),
)using GetStream;
using GetStream.Models;
var client = new StreamClient("{{ api_key }}", "{{ api_secret }}");
var chat = new ChatClient(client);
var channelId = "channel-id";
// Truncate a channel
await chat.TruncateChannelAsync("messaging", channelId,
new TruncateChannelRequest());
// Or with parameters:
await chat.TruncateChannelAsync("messaging", channelId,
new TruncateChannelRequest
{
SkipPush = true,
HardDelete = true,
Message = new MessageRequest
{
Text = "Dear Everyone. The channel has been truncated.",
UserID = "user-id"
}
});require 'getstream_ruby'
Models = GetStream::Generated::Models
client.chat.truncate_channel("messaging", "general", Models::TruncateChannelRequest.new)
# Or with parameters:
client.chat.truncate_channel("messaging", "general", Models::TruncateChannelRequest.new(
skip_push: true,
hard_delete: true,
message: Models::MessageRequest.new(
text: "Dear Everyone. The channel has been truncated.",
user_id: user_id
)
))use GetStream\ChatClient;
use GetStream\GeneratedModels as Models;
$client = new ChatClient("{{ api_key }}", "{{ api_secret }}");
$client->truncateChannel("messaging", "general", new Models\TruncateChannelRequest());
// Or with parameters:
$client->truncateChannel("messaging", "general", new Models\TruncateChannelRequest(
message: new Models\MessageRequest(
text: "Dear Everyone. The channel has been truncated.",
userID: $userId,
),
skipPush: true,
));channel := client.Chat().Channel("messaging", "general")
channel.Truncate(ctx, &getstream.TruncateChannelRequest{})
// Or with parameters:
channel.Truncate(ctx, &getstream.TruncateChannelRequest{
SkipPush: getstream.PtrTo(true),
HardDelete: getstream.PtrTo(true),
Message: &getstream.MessageRequest{
Text: getstream.PtrTo("Truncated channel."),
UserID: getstream.PtrTo(userID),
},
})let controller = client.channelController(for: .init(type: .messaging, id: "general"))
controller.truncateChannel()await channel.TruncateAsync(systemMessage: "Clearing up the history!");// Android SDK
// Removes all of the messages of the channel but doesn't affect the channel data or members
channelClient.truncate().enqueue(result -> {
if (result.isSuccess()) {
// Channel is truncated
} else {
// Handle result.error()
}
});
// Backend SDK
chat.truncateChannel(type, id, TruncateChannelRequest.builder().build()).execute();Channel->Truncate();
// Or with parameters:
Channel->Truncate(
true, // bHardDelete
{}, // TruncatedAt
FMessage{TEXT("Dear Everyone. The channel has been truncated.")},
false, // bSkipPush
[]
{
// Channel is truncated
});Truncate Options
| Field | Type | Description | Optional |
|---|---|---|---|
| truncated_at | Date | Truncate messages up to this time | ✓ |
| user_id | string | User who performed the truncation (server-side only) | ✓ |
| message | object | A system message to add after truncation | ✓ |
| skip_push | bool | Do not send a push notification for the system message | ✓ |
| hard_delete | bool | Permanently delete messages instead of hiding them | ✓ |