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
|
||
}
|