diff --git a/pkg/connector/client.go b/pkg/connector/client.go index f7b8030f..3ad406af 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -741,30 +741,3 @@ func (t *TelegramClient) senderForUserID(userID int64) bridgev2.EventSender { Sender: ids.MakeUserID(userID), } } - -func (t *TelegramClient) HandleMatrixDeleteChat(ctx context.Context, chat *bridgev2.MatrixDeleteChat) error { - peerType, id, err := ids.ParsePortalID(chat.Portal.ID) - if err != nil { - return err - } - switch peerType { - case ids.PeerTypeUser: - if chat.Content.DeleteForEveryone { - _, err := t.client.API().MessagesDeleteHistory(ctx, &tg.MessagesDeleteHistoryRequest{ - Peer: &tg.InputPeerUser{UserID: id}, - Revoke: true, - MaxID: 0, - }) - if err != nil { - return err - } - } - _, err = t.client.API().MessagesDeleteChat(ctx, id) - if err != nil { - return err - } - default: - return fmt.Errorf("deleting chat not supported for peer type %s", peerType) - } - return nil -} diff --git a/pkg/connector/handlematrix.go b/pkg/connector/handlematrix.go index d87e3a36..5d57ebe7 100644 --- a/pkg/connector/handlematrix.go +++ b/pkg/connector/handlematrix.go @@ -799,3 +799,29 @@ func (t *TelegramClient) HandleRoomTag(ctx context.Context, msg *bridgev2.Matrix }) return err } + +func (t *TelegramClient) HandleMatrixDeleteChat(ctx context.Context, chat *bridgev2.MatrixDeleteChat) error { + peerType, id, err := ids.ParsePortalID(chat.Portal.ID) + if err != nil { + return err + } + if chat.Portal.RoomType == database.RoomTypeDM { + if chat.Content.DeleteForEveryone { + _, err := t.client.API().MessagesDeleteHistory(ctx, &tg.MessagesDeleteHistoryRequest{ + Peer: &tg.InputPeerUser{UserID: id}, + Revoke: true, + MaxID: 0, + }) + if err != nil { + return err + } + } + _, err = t.client.API().MessagesDeleteChat(ctx, id) + if err != nil { + return err + } + } else { + return fmt.Errorf("deleting chat not supported for peer type %s", peerType) + } + return nil +}