switch update to upsert
This commit is contained in:
parent
a4097706de
commit
4759e7638c
1 changed files with 12 additions and 8 deletions
|
|
@ -4,6 +4,7 @@ import (
|
|||
"database/sql"
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
|
@ -117,22 +118,18 @@ func (r *Repo) updateMerch(payload UpdateMerchDTO, userUuid string) error {
|
|||
|
||||
switch payload.Origin {
|
||||
case "surugaya":
|
||||
var recordSurugaya Surugaya
|
||||
err := r.db.Where("merch_uuid = ?", payload.MerchUuid).FirstOrCreate(&recordSurugaya, Surugaya{
|
||||
if err := r.upsertOrigin(&Surugaya{
|
||||
MerchUuid: payload.MerchUuid,
|
||||
Link: payload.Link,
|
||||
}).Error
|
||||
if err != nil {
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
case "mandarake":
|
||||
var recordMandarake Mandarake
|
||||
err := r.db.Where("merch_uuid = ?", payload.MerchUuid).FirstOrCreate(&recordMandarake, Mandarake{
|
||||
if err := r.upsertOrigin(&Mandarake{
|
||||
MerchUuid: payload.MerchUuid,
|
||||
Link: payload.Link,
|
||||
}).Error
|
||||
if err != nil {
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
@ -220,3 +217,10 @@ func (r *Repo) getDistinctPrices(userUuid, merchUuid string, period time.Time) (
|
|||
}
|
||||
return prices, nil
|
||||
}
|
||||
|
||||
func (r *Repo) upsertOrigin(model any) error {
|
||||
return r.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "merch_uuid"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"link"}),
|
||||
}).Create(model).Error
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue