mirror of
https://github.com/snowykami/neo-blog.git
synced 2025-09-05 16:56:22 +00:00
⚡ implement user authentication and database initialization, add models for user, comment, label, and OIDC configuration
This commit is contained in:
45
internal/repo/user.go
Normal file
45
internal/repo/user.go
Normal file
@ -0,0 +1,45 @@
|
||||
package repo
|
||||
|
||||
import "github.com/snowykami/neo-blog/internal/model"
|
||||
|
||||
type userRepo struct{}
|
||||
|
||||
var User = &userRepo{}
|
||||
|
||||
func (user *userRepo) GetByUsername(username string) (*model.User, error) {
|
||||
var userModel model.User
|
||||
if err := GetDB().Where("username = ?", username).First(&userModel).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &userModel, nil
|
||||
}
|
||||
|
||||
func (user *userRepo) GetByEmail(email string) (*model.User, error) {
|
||||
var userModel model.User
|
||||
if err := GetDB().Where("email = ?", email).First(&userModel).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &userModel, nil
|
||||
}
|
||||
|
||||
func (user *userRepo) GetByUsernameOrEmail(usernameOrEmail string) (*model.User, error) {
|
||||
var userModel model.User
|
||||
if err := GetDB().Where("username = ? OR email = ?", usernameOrEmail, usernameOrEmail).First(&userModel).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &userModel, nil
|
||||
}
|
||||
|
||||
func (user *userRepo) Create(userModel *model.User) error {
|
||||
if err := GetDB().Create(userModel).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (user *userRepo) Update(userModel *model.User) error {
|
||||
if err := GetDB().Updates(userModel).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user