43 lines
989 B
Go
43 lines
989 B
Go
package services
|
|
|
|
import (
|
|
"errors"
|
|
"gobeyhan/database"
|
|
"gobeyhan/database/models"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type PermissionService struct{}
|
|
|
|
func NewPermissionService() *PermissionService {
|
|
return &PermissionService{}
|
|
}
|
|
|
|
// GetAllPermissions retrieves all permissions
|
|
func (s *PermissionService) GetAllPermissions() ([]models.Permission, error) {
|
|
var permissions []models.Permission
|
|
err := database.DB.Find(&permissions).Error
|
|
return permissions, err
|
|
}
|
|
|
|
// GetPermissionByID retrieves a permission by ID
|
|
func (s *PermissionService) GetPermissionByID(id uint64) (*models.Permission, error) {
|
|
var permission models.Permission
|
|
err := database.DB.First(&permission, id).Error
|
|
|
|
if err != nil {
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return nil, nil
|
|
}
|
|
return nil, err
|
|
}
|
|
|
|
return &permission, nil
|
|
}
|
|
|
|
// CreatePermission creates a new permission
|
|
func (s *PermissionService) CreatePermission(permission *models.Permission) error {
|
|
return database.DB.Create(permission).Error
|
|
}
|