Fix(profile): Upsert based on user_id
All checks were successful
ktm-booking-bot/ktm-booking-bot/pipeline/head This commit looks good
All checks were successful
ktm-booking-bot/ktm-booking-bot/pipeline/head This commit looks good
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user