app-cloudep-permission-server/pkg/domain/usecase/permission.go

43 lines
1.5 KiB
Go
Raw Normal View History

2025-02-24 01:04:06 +00:00
package usecase
import (
"code.30cm.net/digimon/app-cloudep-permission-server/pkg/domain/entity"
"code.30cm.net/digimon/app-cloudep-permission-server/pkg/domain/permission"
"context"
)
type PermissionUseCase interface {
Insert(ctx context.Context, req CreatePermissionReq) error
Del(ctx context.Context, id string) error
Update(ctx context.Context, req UpdatePermissionReq) error
Get(ctx context.Context, id string) (entity.Permission, error)
List(ctx context.Context, param ListParam) ([]entity.Permission, int64, error)
All(ctx context.Context, status *permission.Status)
// FilterAll 用樹的結構,使得付節點若關閉,子節點也不會顯示
FilterAll(ctx context.Context) ([]entity.Permission, error)
}
type CreatePermissionReq struct {
Parent *string // 父權限的 ID (用字串儲存 ObjectID 的 Hex)
Name string // 權限名字
HTTPMethod string // 視作操作Action
HTTPPath string // 視作資源Object
Status permission.Status // 例如 1: 啟用, 0: 停用
Type permission.Type
}
type UpdatePermissionReq struct {
Parent *string // 父權限的 ID (用字串儲存 ObjectID 的 Hex)
Name *string // 權限名字
HTTPMethod *string // 視作操作Action
HTTPPath *string // 視作資源Object
Status *permission.Status // 例如 1: 啟用, 0: 停用
Type *permission.Type
}
type ListParam struct {
PageIndex int64
PageSize int64
Parent *string
}