rbac/repositories/user.go
zhangkun9038@dingtalk.com 6669be1923 up
2025-02-16 17:55:27 +08:00

56 lines
1.2 KiB
Go

package repositories
import (
"gitea.zjmud.xyz/phyer/rbac/config"
"gitea.zjmud.xyz/phyer/rbac/models"
"gorm.io/gorm"
)
var db *gorm.DB
func InitDB() error {
var err error
db, err = gorm.Open(mysql.Open(config.GetDSN()), &gorm.Config{})
if err != nil {
return err
}
return db.AutoMigrate(&models.User{})
}
func GetAllUsers() ([]models.User, error) {
var users []models.User
result := db.Find(&users)
return users, result.Error
}
func GetUserByID(id string) (*models.User, error) {
var user models.User
result := db.First(&user, "id = ?", id)
return &user, result.Error
}
func GetUserByUsername(username string) (*models.User, error) {
var user models.User
result := db.First(&user, "username = ?", username)
return &user, result.Error
}
func CreateUser(user *models.User) (*models.User, error) {
result := db.Create(user)
return user, result.Error
}
func UpdateUser(id string, updateData map[string]interface{}) (*models.User, error) {
var user models.User
result := db.Model(&user).Where("id = ?", id).Updates(updateData)
if result.Error != nil {
return nil, result.Error
}
return GetUserByID(id)
}
func DeleteUser(id string) error {
result := db.Delete(&models.User{}, "id = ?", id)
return result.Error
}