1
0
mirror of https://github.com/mgerb/go-discord-bot synced 2026-01-09 08:32:48 +00:00
Files
go-discord-bot/server/webserver/model/user.go

36 lines
1.0 KiB
Go

package model
import (
"time"
"github.com/jinzhu/copier"
"github.com/jinzhu/gorm"
)
// User -
type User struct {
ID string `gorm:"primary_key" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *time.Time `json:"deleted_at"`
Email string `json:"email"`
Username string `json:"username"`
Avatar string `json:"avatar"`
Discriminator string `json:"discriminator"`
Token string `gorm:"-" json:"token"`
Verified bool `json:"verified"`
MFAEnabled bool `json:"mfa_enabled"`
Bot bool `json:"bot"`
Permissions *int `gorm:"default:1;not null" json:"permissions"`
}
// UserSave -
func UserSave(conn *gorm.DB, u *User) error {
var userCopy User
copier.Copy(&userCopy, u)
// insert or update user
// need to make copy of assign object because it must mess
// with the actual object in FirstOrCreate method
return conn.Where(&User{ID: u.ID}).Assign(userCopy).FirstOrCreate(u).Error
}