package dao import ( "github.com/nose7en/ToyBoomServer/defs" "github.com/nose7en/ToyBoomServer/models" "gorm.io/gorm" ) func (q *queryImpl) GetUserByAppleUserID(appleUserID string) (defs.UserGettable, error) { user := &models.User{} if result := q.db.Where(models.User{AppleUserID: appleUserID}).First(user); result.Error != nil { return nil, result.Error } return user, nil } func (q *queryImpl) GetUserByID(userID int64) (defs.UserGettable, error) { user := &models.User{} if result := q.db.Where(models.User{Model: gorm.Model{ID: uint(userID)}}).First(user); result.Error != nil { return nil, result.Error } return user, nil } func (m *mutationImpl) FirstOrCreateUser(user defs.UserGettable) (defs.UserGettable, error) { record := &models.User{} newUserAttrs := &models.User{} newUserAttrs.FromUserInfo(user) result := m.db.Where(models.User{AppleUserID: user.GetAppleUserID()}). Attrs(newUserAttrs). FirstOrCreate(record) return record, result.Error }