diff --git a/backend/internal/user/profilecontroller.go b/backend/internal/user/profilecontroller.go index d90013c..3d92ec0 100644 --- a/backend/internal/user/profilecontroller.go +++ b/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 }