Feature/fileinfo create copy (#9198)
* Initial implementation of a CopyFileInfos function that creates new FileInfo objects copied from provided FileIds with the provided user as the creator and not linked to a post yet. This can subsequently be used to copy existing attachments from another post to attach to a new post without having to re-upload the actual files * added a unit test for the CopyFileInfos function * resolving pull request suggestions
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
b728b16f90
Коммит
7a731d2bd1
30
app/file.go
30
app/file.go
@@ -604,3 +604,33 @@ func (a *App) GetFileInfo(fileId string) (*model.FileInfo, *model.AppError) {
|
||||
return result.Data.(*model.FileInfo), nil
|
||||
}
|
||||
}
|
||||
|
||||
func (a *App) CopyFileInfos(userId string, fileIds []string) ([]string, *model.AppError) {
|
||||
newFileIds := []string{}
|
||||
|
||||
now := model.GetMillis()
|
||||
|
||||
for _, fileId := range fileIds {
|
||||
fileInfo := &model.FileInfo{}
|
||||
|
||||
if result := <-a.Srv.Store.FileInfo().Get(fileId); result.Err != nil {
|
||||
return nil, result.Err
|
||||
} else {
|
||||
fileInfo = result.Data.(*model.FileInfo)
|
||||
}
|
||||
|
||||
fileInfo.Id = model.NewId()
|
||||
fileInfo.CreatorId = userId
|
||||
fileInfo.CreateAt = now
|
||||
fileInfo.UpdateAt = now
|
||||
fileInfo.PostId = ""
|
||||
|
||||
if result := <-a.Srv.Store.FileInfo().Save(fileInfo); result.Err != nil {
|
||||
return newFileIds, result.Err
|
||||
}
|
||||
|
||||
newFileIds = append(newFileIds, fileInfo.Id)
|
||||
}
|
||||
|
||||
return newFileIds, nil
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user