rbac/repositories/permission.go
zhangkun9038@dingtalk.com 375b305ab4 aliyun-deepseek-r1
2025-02-20 11:29:57 +08:00

56 lines
1.5 KiB
Go

package repositories
import (
"gitea.zjmud.com/phyer/rbac/models"
"gorm.io/gorm"
)
type PermissionRepository interface {
Create(permission *models.Permission) error
Update(permission *models.Permission) error
Delete(permission *models.Permission) error
FindByID(id uint) (*models.Permission, error)
FindAll() ([]models.Permission, error)
FindByName(name string) (*models.Permission, error)
}
type permissionRepository struct {
*BaseRepository
}
func NewPermissionRepository(db *gorm.DB) PermissionRepository {
return &permissionRepository{
BaseRepository: NewBaseRepository(db),
}
}
func (r *permissionRepository) Create(permission *models.Permission) error {
return r.BaseRepository.Create(permission)
}
func (r *permissionRepository) Update(permission *models.Permission) error {
return r.BaseRepository.Update(permission)
}
func (r *permissionRepository) Delete(permission *models.Permission) error {
return r.BaseRepository.Delete(permission)
}
func (r *permissionRepository) FindByID(id uint) (*models.Permission, error) {
var permission models.Permission
err := r.BaseRepository.FindByID(&permission, id)
return &permission, err
}
func (r *permissionRepository) FindAll() ([]models.Permission, error) {
var permissions []models.Permission
err := r.BaseRepository.FindAll(&permissions)
return permissions, err
}
func (r *permissionRepository) FindByName(name string) (*models.Permission, error) {
var permission models.Permission
err := r.db.Where("name = ?", name).First(&permission).Error
return &permission, err
}