feat: login with apple

This commit is contained in:
VaalaCat
2024-09-04 18:15:49 +00:00
parent 13148b95e3
commit 0948d23239
13 changed files with 268 additions and 41 deletions

View File

@@ -1,13 +1,33 @@
package dao
import "github.com/nose7en/ToyBoomServer/defs"
import (
"github.com/nose7en/ToyBoomServer/defs"
"github.com/nose7en/ToyBoomServer/models"
"gorm.io/gorm"
)
func (q *queryImpl) GetUserByAppleUserID(appleUserID string) (defs.UserGettable, error) {
return nil, nil
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 (m *mutationImpl) CreateUser(user defs.UserGettable) error {
return 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
}