From c8650b97e20b1223fcae13be870e884d598a5617 Mon Sep 17 00:00:00 2001 From: irismarie Date: Wed, 13 Oct 2021 15:11:07 +0200 Subject: [PATCH] duplicate files --- routes/user/authenticate_endpoint.go | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/routes/user/authenticate_endpoint.go b/routes/user/authenticate_endpoint.go index b98c0c8..612975e 100644 --- a/routes/user/authenticate_endpoint.go +++ b/routes/user/authenticate_endpoint.go @@ -220,6 +220,34 @@ func authenticateInternal(c *gin.Context) (User, error) { return myUser, nil } +func duplicateFiles(originalSo *database.Scenario, duplicateSo *database.Scenario) error { + db := database.GetDB() + var files []database.File + err := db.Order("ID asc").Model(originalSo).Related(&files, "Files").Error + if err != nil { + log.Printf("error getting files for scenario %d", originalSo.ID) + } + + for _, file := range files { + var duplicateF database.File + duplicateF.Name = file.Name + duplicateF.Key = file.Key + duplicateF.Type = file.Type + duplicateF.Size = file.Size + duplicateF.Date = file.Date + duplicateF.ScenarioID = duplicateSo.ID + duplicateF.FileData = file.FileData + duplicateF.ImageHeight = file.ImageHeight + duplicateF.ImageWidth = file.ImageWidth + err = db.Create(&duplicateF).Error + if err != nil { + log.Print("error creating duplicate file") + return err + } + } + return nil +} + func duplicateDashboards(originalSo *database.Scenario, duplicateSo *database.Scenario, signalMap map[uint]uint, appendix string) error { @@ -340,6 +368,10 @@ func duplicateScenario(so *database.Scenario, duplicateSo *database.Scenario, ic return err } log.Print("created duplicate scenario") + err = duplicateFiles(so, duplicateSo) + if err != nil { + return err + } var configs []database.ComponentConfiguration // map existing signal IDs to duplicated signal IDs for widget duplication