init repo

This commit is contained in:
VaalaCat
2024-08-28 00:02:28 +08:00
committed by vaalacat
commit 13148b95e3
97 changed files with 10214 additions and 0 deletions

7
models/models.go Normal file
View File

@@ -0,0 +1,7 @@
package models
func Models() []interface{} {
return []interface{}{
&User{},
}
}

68
models/user.go Normal file
View File

@@ -0,0 +1,68 @@
package models
import (
"github.com/nose7en/ToyBoomServer/defs"
"gorm.io/gorm"
)
var _ defs.UserGettable = (*User)(nil)
func NewUserGettable(opt ...func(*User)) defs.UserGettable {
u := &User{}
for _, o := range opt {
o(u)
}
return u
}
type User struct {
gorm.Model
UserID string `json:"user_id"` // user id from apple
Name string `json:"name"` // ToyBoom's user name
Username string `json:"username"` // user name from apple
Email string `json:"email"` // email from apple
IsPrivateEmail bool `json:"is_private_email"`
EmailVerified bool `json:"email_verified"`
}
func (u *User) FillWithUserInfo(userInfo defs.UserGettable) {
u.UserID = userInfo.GetUserID()
u.Name = userInfo.GetName()
u.Username = userInfo.GetUsername()
u.Email = userInfo.GetEmail()
u.IsPrivateEmail = userInfo.GetIsPrivateEmail()
u.EmailVerified = userInfo.GetEmailVerified()
}
func (u *User) GetName() string {
return u.Name
}
func (u *User) GetUsername() string {
return u.Username
}
func (u *User) GetUserID() string {
return u.UserID
}
func (u *User) GetEmail() string {
return u.Email
}
func (u *User) GetIsPrivateEmail() bool {
return u.IsPrivateEmail
}
func (u *User) GetEmailVerified() bool {
return u.EmailVerified
}
func (u *User) ToUser() defs.User {
return defs.User{
UserID: u.UserID,
Name: u.Name,
Username: u.Username,
Email: u.Email,
}
}