56 lines
1.5 KiB
Go
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
|
|
}
|