2024-09-04 18:15:49 +00:00

34 lines
984 B
Go

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
}