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 (
"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) {
profile := &Profile{
UserID: currUser.ID,
KtmTrainUsername: ktmTrainUsername,
KtmTrainPassword: ktmTrainPassword,
KtmTrainCreditCardType: ktmTrainCreditCardType,
KtmTrainCreditCard: ktmTrainCreditCard,
KtmTrainCreditCardExpiry: ktmTrainCreditCardExpiry,
KtmTrainCreditCardCVV: ktmTrainCreditCardCVV,
profile := &Profile{}
err := env.DB.Where(&Profile{UserID: currUser.ID}).FirstOrInit(profile).Error
if err != nil {
log.Println("Error initialising profile", err)
log.Println(err)
return nil, err
}
if err := env.DB.Clauses(clause.OnConflict{
UpdateAll: true,
}).Create(profile).Error; err != nil {
profile.UserID = currUser.ID
profile.KtmTrainUsername = ktmTrainUsername
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(err)
return nil, err
}