[MM-61691] Deleting drafts when permanently deleting a user (#30233)

* deleting drafts on permanently deleting user

* verified count of drafts before deleting

* i18n fix

* use ExecBuilder

* changed error message to specify user

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Этот коммит содержится в:
Arya Khochare
2025-03-13 19:19:38 +05:30
коммит произвёл GitHub
родитель e2a7240e34
Коммит 4fbfd84957
8 изменённых файлов: 159 добавлений и 0 удалений

Просмотреть файл

@@ -4209,6 +4209,27 @@ func (s *RetryLayerDraftStore) GetLastCreateAtAndUserIdValuesForEmptyDraftsMigra
}
func (s *RetryLayerDraftStore) PermanentDeleteByUser(userId string) error {
tries := 0
for {
err := s.DraftStore.PermanentDeleteByUser(userId)
if err == nil {
return nil
}
if !isRepeatableError(err) {
return err
}
tries++
if tries >= 3 {
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
return err
}
timepkg.Sleep(100 * timepkg.Millisecond)
}
}
func (s *RetryLayerDraftStore) Upsert(d *model.Draft) (*model.Draft, error) {
tries := 0