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