9304 added the attachments import to direct post (#9308)
Этот коммит содержится в:
коммит произвёл
Carlos Tadeu Panato Junior
родитель
c2676d964e
Коммит
7a3cf112c5
@@ -1118,6 +1118,14 @@ func (a *App) ImportDirectPost(data *DirectPostImportData, dryRun bool) *model.A
|
|||||||
|
|
||||||
post.Hashtags, _ = model.ParseHashtags(post.Message)
|
post.Hashtags, _ = model.ParseHashtags(post.Message)
|
||||||
|
|
||||||
|
if data.Attachments != nil {
|
||||||
|
fileIds, err := a.uploadAttachments(data.Attachments, post, "noteam", dryRun)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
post.FileIds = append(post.FileIds, fileIds...)
|
||||||
|
}
|
||||||
|
|
||||||
if post.Id == "" {
|
if post.Id == "" {
|
||||||
if result := <-a.Srv.Store.Post().Save(post); result.Err != nil {
|
if result := <-a.Srv.Store.Post().Save(post); result.Err != nil {
|
||||||
return result.Err
|
return result.Err
|
||||||
@@ -1171,6 +1179,7 @@ func (a *App) ImportDirectPost(data *DirectPostImportData, dryRun bool) *model.A
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.UpdateFileInfoWithPostId(post)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2553,3 +2553,54 @@ func TestImportPostAndRepliesWithAttachments(t *testing.T) {
|
|||||||
AssertFileIdsInPost(attachments, th, t)
|
AssertFileIdsInPost(attachments, th, t)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestImportDirectPostWithAttachments(t *testing.T) {
|
||||||
|
|
||||||
|
th := Setup()
|
||||||
|
defer th.TearDown()
|
||||||
|
|
||||||
|
testsDir, _ := utils.FindDir("tests")
|
||||||
|
testImage := filepath.Join(testsDir, "test.png")
|
||||||
|
|
||||||
|
// Create a user.
|
||||||
|
username := model.NewId()
|
||||||
|
th.App.ImportUser(&UserImportData{
|
||||||
|
Username: &username,
|
||||||
|
Email: ptrStr(model.NewId() + "@example.com"),
|
||||||
|
}, false)
|
||||||
|
user1, err := th.App.GetUserByUsername(username)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to get user1 from database.")
|
||||||
|
}
|
||||||
|
|
||||||
|
username2 := model.NewId()
|
||||||
|
th.App.ImportUser(&UserImportData{
|
||||||
|
Username: &username2,
|
||||||
|
Email: ptrStr(model.NewId() + "@example.com"),
|
||||||
|
}, false)
|
||||||
|
|
||||||
|
user2, err := th.App.GetUserByUsername(username2)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to get user2 from database.")
|
||||||
|
}
|
||||||
|
|
||||||
|
directImportData := &DirectPostImportData{
|
||||||
|
ChannelMembers: &[]string{
|
||||||
|
user1.Username,
|
||||||
|
user2.Username,
|
||||||
|
},
|
||||||
|
User: &user1.Username,
|
||||||
|
Message: ptrStr("Direct message"),
|
||||||
|
CreateAt: ptrInt64(model.GetMillis()),
|
||||||
|
Attachments: &[]AttachmentImportData{{Path: &testImage}},
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := th.App.ImportDirectPost(directImportData, false); err != nil {
|
||||||
|
t.Fatalf("Expected success.")
|
||||||
|
}
|
||||||
|
|
||||||
|
attachments := GetAttachments(user1.Id, th, t)
|
||||||
|
assert.Equal(t, len(attachments), 1)
|
||||||
|
assert.Contains(t, attachments[0].Path, "noteam")
|
||||||
|
AssertFileIdsInPost(attachments, th, t)
|
||||||
|
}
|
||||||
|
|||||||
@@ -148,9 +148,10 @@ type DirectPostImportData struct {
|
|||||||
Message *string `json:"message"`
|
Message *string `json:"message"`
|
||||||
CreateAt *int64 `json:"create_at"`
|
CreateAt *int64 `json:"create_at"`
|
||||||
|
|
||||||
FlaggedBy *[]string `json:"flagged_by"`
|
FlaggedBy *[]string `json:"flagged_by"`
|
||||||
Reactions *[]ReactionImportData `json:"reactions"`
|
Reactions *[]ReactionImportData `json:"reactions"`
|
||||||
Replies *[]ReplyImportData `json:"replies"`
|
Replies *[]ReplyImportData `json:"replies"`
|
||||||
|
Attachments *[]AttachmentImportData `json:"attachments"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type SchemeImportData struct {
|
type SchemeImportData struct {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user