From 2091b96098dc4fbb2df5173cfd5d39ba2feb0b9a Mon Sep 17 00:00:00 2001 From: Raphael Osaze Eyerin Date: Thu, 25 May 2023 16:32:03 +0100 Subject: [PATCH] fixed create and edit bugs (#555) --- db/db.go | 20 ++++++++++---------- db/structs.go | 2 +- handlers/bots.go | 6 ------ 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/db/db.go b/db/db.go index 70b384bcf..37f94bf97 100644 --- a/db/db.go +++ b/db/db.go @@ -122,10 +122,11 @@ func (db database) CreateOrEditTribe(m Tribe) (Tribe, error) { if m.Badges == nil { m.Badges = []string{} } - if err := db.db.Set("gorm:insert_option", onConflict).Create(&m).Error; err != nil { - fmt.Println(">>>>>>>>> == ", err) - return Tribe{}, err + + if db.db.Model(&m).Where("uuid = ?", m.UUID).Updates(&m).RowsAffected == 0 { + db.db.Create(&m) } + db.db.Exec(`UPDATE tribes SET tsv = setweight(to_tsvector(name), 'A') || setweight(to_tsvector(description), 'B') || @@ -170,10 +171,11 @@ func (db database) CreateOrEditBot(b Bot) (Bot, error) { if b.Tags == nil { b.Tags = []string{} } - if err := db.db.Set("gorm:insert_option", onConflict).Create(&b).Error; err != nil { - fmt.Println(err) - return Bot{}, err + + if db.db.Model(&b).Where("uuid = ?", b.UUID).Updates(&b).RowsAffected == 0 { + db.db.Create(&b) } + db.db.Exec(`UPDATE bots SET tsv = setweight(to_tsvector(name), 'A') || setweight(to_tsvector(description), 'B') || @@ -210,10 +212,8 @@ func (db database) CreateOrEditPerson(m Person) (Person, error) { m.GithubIssues = map[string]interface{}{} } - if err := db.db.Model(&m).Where("id = ?", m.ID).UpdateColumns(m).Error; err != nil { - if err.Error() == gorm.ErrRecordNotFound.Error() { - db.db.Create(&m) - } + if db.db.Model(&m).Where("id = ?", m.ID).Updates(&m).RowsAffected == 0 { + db.db.Create(&m) } db.db.Exec(`UPDATE people SET tsv = diff --git a/db/structs.go b/db/structs.go index 988bb4c08..7f8b0388e 100644 --- a/db/structs.go +++ b/db/structs.go @@ -53,7 +53,7 @@ type Bot struct { Name string `json:"name"` UniqueName string `json:"unique_name"` Description string `json:"description"` - Tags pq.StringArray `json:"tags"` + Tags pq.StringArray `gorm:"type:text[]" json:"tags"` Img string `json:"img"` PricePerUse int64 `json:"price_per_use"` Created *time.Time `json:"created"` diff --git a/handlers/bots.go b/handlers/bots.go index 4340186f8..935ff29ab 100644 --- a/handlers/bots.go +++ b/handlers/bots.go @@ -52,12 +52,6 @@ func CreateOrEditBot(w http.ResponseWriter, r *http.Request) { } } - // existing := DB.getTribe(tribe.UUID) - // if existing.UUID != "" { - // w.WriteHeader(http.StatusUnauthorized) - // return - // } - bot.OwnerPubKey = extractedPubkey bot.Updated = &now bot.UniqueName, _ = BotUniqueNameFromName(bot.Name)