[MM-56073] MMCTL delete post command (#27539)

Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Этот коммит содержится в:
Ben Cooke
2024-10-08 10:45:31 -04:00
коммит произвёл GitHub
родитель a671f80d2c
Коммит b3c7ef0b97
39 изменённых файлов: 1246 добавлений и 152 удалений

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

@@ -37,6 +37,7 @@ func TestFileInfoStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStor
t.Run("CountAll", func(t *testing.T) { testFileInfoStoreCountAll(t, rctx, ss) })
t.Run("GetStorageUsage", func(t *testing.T) { testFileInfoGetStorageUsage(t, rctx, ss) })
t.Run("GetUptoNSizeFileTime", func(t *testing.T) { testGetUptoNSizeFileTime(t, rctx, ss, s) })
t.Run("FileInfoPermanentDeleteForPost", func(t *testing.T) { testPermanentDeleteForPost(t, rctx, ss) })
}
func testFileInfoSaveGet(t *testing.T, rctx request.CTX, ss store.Store) {
@@ -941,3 +942,28 @@ func testGetUptoNSizeFileTime(t *testing.T, rctx request.CTX, ss store.Store, s
require.NoError(t, err)
assert.Equal(t, f2.CreateAt, createAt)
}
func testPermanentDeleteForPost(t *testing.T, rctx request.CTX, ss store.Store) {
postId := model.NewId()
_, err := ss.FileInfo().Save(rctx, &model.FileInfo{
PostId: postId,
CreatorId: model.NewId(),
Size: 10,
Path: "file1.txt",
CreateAt: utils.MillisFromTime(time.Now()),
})
require.NoError(t, err)
err = ss.FileInfo().PermanentDeleteForPost(rctx, postId)
require.NoError(t, err)
postInfos, err := ss.FileInfo().GetForPost(
postId,
true,
true,
false,
)
require.NoError(t, err)
assert.Len(t, postInfos, 0)
}

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

@@ -469,6 +469,24 @@ func (_m *FileInfoStore) PermanentDeleteByUser(ctx request.CTX, userID string) (
return r0, r1
}
// PermanentDeleteForPost provides a mock function with given fields: rctx, postID
func (_m *FileInfoStore) PermanentDeleteForPost(rctx request.CTX, postID string) error {
ret := _m.Called(rctx, postID)
if len(ret) == 0 {
panic("no return value specified for PermanentDeleteForPost")
}
var r0 error
if rf, ok := ret.Get(0).(func(request.CTX, string) error); ok {
r0 = rf(rctx, postID)
} else {
r0 = ret.Error(0)
}
return r0
}
// Save provides a mock function with given fields: ctx, info
func (_m *FileInfoStore) Save(ctx request.CTX, info *model.FileInfo) (*model.FileInfo, error) {
ret := _m.Called(ctx, info)

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

@@ -1046,6 +1046,24 @@ func (_m *PostStore) OverwriteMultiple(posts []*model.Post) ([]*model.Post, int,
return r0, r1, r2
}
// PermanentDelete provides a mock function with given fields: rctx, postID
func (_m *PostStore) PermanentDelete(rctx request.CTX, postID string) error {
ret := _m.Called(rctx, postID)
if len(ret) == 0 {
panic("no return value specified for PermanentDelete")
}
var r0 error
if rf, ok := ret.Get(0).(func(request.CTX, string) error); ok {
r0 = rf(rctx, postID)
} else {
r0 = ret.Error(0)
}
return r0
}
// PermanentDeleteBatch provides a mock function with given fields: endTime, limit
func (_m *PostStore) PermanentDeleteBatch(endTime int64, limit int64) (int64, error) {
ret := _m.Called(endTime, limit)