Browse Source

Fix(profile): Upsert based on user_id

master
Samuel Pua 3 years ago
parent
commit
5558e0001a
  1. 31
      backend/internal/user/profilecontroller.go

31
backend/internal/user/profilecontroller.go

@ -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
}

Loading…
Cancel
Save