Fix(profile): Upsert based on user_id
All checks were successful
ktm-booking-bot/ktm-booking-bot/pipeline/head This commit looks good

This commit is contained in:
2022-10-21 01:00:34 +08:00
parent 55fdb1c01e
commit 5558e0001a

View File

@@ -2,25 +2,30 @@ package user
import ( import (
"log" "log"
"gorm.io/gorm/clause"
) )
func (env *Env) setProfile(currUser *User, ktmTrainUsername string, ktmTrainPassword string, ktmTrainCreditCardType string, ktmTrainCreditCard string, ktmTrainCreditCardExpiry string, ktmTrainCreditCardCVV string) (*User, error) { func (env *Env) setProfile(currUser *User, ktmTrainUsername string, ktmTrainPassword string, ktmTrainCreditCardType string, ktmTrainCreditCard string, ktmTrainCreditCardExpiry string, ktmTrainCreditCardCVV string) (*User, error) {
profile := &Profile{ profile := &Profile{}
UserID: currUser.ID,
KtmTrainUsername: ktmTrainUsername, err := env.DB.Where(&Profile{UserID: currUser.ID}).FirstOrInit(profile).Error
KtmTrainPassword: ktmTrainPassword, if err != nil {
KtmTrainCreditCardType: ktmTrainCreditCardType, log.Println("Error initialising profile", err)
KtmTrainCreditCard: ktmTrainCreditCard, log.Println(err)
KtmTrainCreditCardExpiry: ktmTrainCreditCardExpiry, return nil, err
KtmTrainCreditCardCVV: ktmTrainCreditCardCVV,
} }
if err := env.DB.Clauses(clause.OnConflict{ profile.UserID = currUser.ID
UpdateAll: true, profile.KtmTrainUsername = ktmTrainUsername
}).Create(profile).Error; err != nil { profile.KtmTrainPassword = ktmTrainPassword
profile.KtmTrainCreditCardType = ktmTrainCreditCardType
profile.KtmTrainCreditCard = ktmTrainCreditCard
profile.KtmTrainCreditCardExpiry = ktmTrainCreditCardExpiry
profile.KtmTrainCreditCardCVV = ktmTrainCreditCardCVV
err = env.DB.Save(profile).Error
if err != nil {
log.Println("Error creating profile", err) log.Println("Error creating profile", err)
log.Println(err)
return nil, err return nil, err
} }