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']
});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
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),
},
})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 | ✓ |