diff --git a/handlers/style/add.go b/handlers/style/add.go index ad78c20d..57ffaad4 100644 --- a/handlers/style/add.go +++ b/handlers/style/add.go @@ -118,13 +118,14 @@ func CreatePost(c *fiber.Ctx) error { if err != nil { log.Warn.Printf("Failed to generate images for %d: %s\n", s.ID, err.Error()) s.Preview = "" + } else { + s.Preview = config.BaseURL + "/api/style/preview/" + styleID + ".jpeg" } - s.Preview = config.BaseURL + "/api/style/preview/" + styleID + ".jpeg" } // TODO: Remove during rewrite of images module. The name-schema shouldn't // require a style id; hashing username+time.Now() should be sufficient. #77 - if err = models.UpdateStyle(s); err != nil { + if err = s.UpdateColumn("preview", s.Preview); err != nil { log.Warn.Printf("Failed to update style %s: %s\n", styleID, err.Error()) } diff --git a/handlers/style/edit.go b/handlers/style/edit.go index 064e91b3..4b100c88 100644 --- a/handlers/style/edit.go +++ b/handlers/style/edit.go @@ -5,6 +5,7 @@ import ( "strings" "github.com/userstyles-world/fiber/v2" + "gorm.io/gorm" "userstyles.world/handlers/jwt" "userstyles.world/models" @@ -71,6 +72,7 @@ func EditPost(c *fiber.Ctx) error { } q := models.Style{ + Model: gorm.Model{ID: s.ID}, Name: c.FormValue("name"), Description: c.FormValue("description"), Notes: c.FormValue("notes"), @@ -119,13 +121,12 @@ func EditPost(c *fiber.Ctx) error { if err != nil { log.Warn.Printf("Failed to generate images for %d: %s\n", s.ID, err.Error()) q.Preview = "" + } else { + q.Preview = config.BaseURL + "/api/style/preview/" + styleID + ".jpeg" } - - q.Preview = config.BaseURL + "/api/style/preview/" + styleID + ".jpeg" } - err = database.Conn.Model(q).Where("id", styleID).Updates(q).Error - if err != nil { + if err = q.UpdateColumn("preview", q.Preview); err != nil { log.Warn.Printf("Failed to update preview image for %s: %s\n", styleID, err.Error()) return c.Render("err", fiber.Map{ "Title": "Failed to update preview image", diff --git a/handlers/style/import.go b/handlers/style/import.go index c5ed4ad4..68427fa9 100644 --- a/handlers/style/import.go +++ b/handlers/style/import.go @@ -110,13 +110,14 @@ func ImportPost(c *fiber.Ctx) error { if err != nil { log.Warn.Printf("Failed to generate images for %d: %s\n", s.ID, err.Error()) s.Preview = "" + } else { + s.Preview = config.BaseURL + "/api/style/preview/" + styleID + ".jpeg" } - s.Preview = config.BaseURL + "/api/style/preview/" + styleID + ".jpeg" } // TODO: Remove during rewrite of images module. The name-schema shouldn't // require a style id; hashing username+time.Now() should be sufficient. #77 - if err = models.UpdateStyle(s); err != nil { + if err = s.UpdateColumn("preview", s.Preview); err != nil { log.Warn.Printf("Failed to update style %s: %s\n", styleID, err.Error()) } diff --git a/models/style.go b/models/style.go index 9debaebc..bab9cf12 100644 --- a/models/style.go +++ b/models/style.go @@ -413,3 +413,7 @@ func (*Style) MirrorStyle(f map[string]interface{}) error { return nil } + +func (s *Style) UpdateColumn(col string, val interface{}) error { + return db().Model(modelStyle).Where("id", s.ID).UpdateColumn(col, val).Error +}