2025-06-08 16:14:19 +08:00

91 lines
2.0 KiB
Go

package namespace
import (
"context"
"github.com/infraboard/mcube/v2/http/request"
"github.com/infraboard/mcube/v2/ioc"
"github.com/infraboard/mcube/v2/types"
"github.com/infraboard/modules/iam/apps"
)
const (
AppName = "namespace"
)
func GetService() Service {
return ioc.Controller().Get(AppName).(Service)
}
type Service interface {
// 创建空间
CreateNamespace(context.Context, *CreateNamespaceRequest) (*Namespace, error)
// 查询空间
QueryNamespace(context.Context, *QueryNamespaceRequest) (*types.Set[*Namespace], error)
// 查询空间详情
DescribeNamespace(context.Context, *DescribeNamespaceRequest) (*Namespace, error)
// 更新空间
UpdateNamespace(context.Context, *UpdateNamespaceRequest) (*Namespace, error)
// 删除空间
DeleteNamespace(context.Context, *DeleteNamespaceRequest) (*Namespace, error)
}
func NewQueryNamespaceRequest() *QueryNamespaceRequest {
return &QueryNamespaceRequest{
PageRequest: *request.NewDefaultPageRequest(),
NamespaceIds: []uint64{},
}
}
type QueryNamespaceRequest struct {
request.PageRequest
NamespaceIds []uint64 `json:"namespace_ids"`
}
func (r *QueryNamespaceRequest) AddNamespaceIds(ids ...uint64) {
for _, id := range ids {
if !r.HasNamespaceIds(id) {
r.NamespaceIds = append(r.NamespaceIds, id)
}
}
}
func (r *QueryNamespaceRequest) HasNamespaceIds(namespaceId uint64) bool {
for i := range r.NamespaceIds {
if r.NamespaceIds[i] == namespaceId {
return true
}
}
return false
}
func NewDescribeNamespaceRequest() *DescribeNamespaceRequest {
return &DescribeNamespaceRequest{}
}
type DescribeNamespaceRequest struct {
apps.GetRequest
}
func (r *DescribeNamespaceRequest) SetNamespaceId(id uint64) *DescribeNamespaceRequest {
r.Id = id
return r
}
func NewUpdateNamespaceRequest() *UpdateNamespaceRequest {
return &UpdateNamespaceRequest{}
}
type UpdateNamespaceRequest struct {
apps.GetRequest
CreateNamespaceRequest
}
func NewDeleteNamespaceRequest() *DeleteNamespaceRequest {
return &DeleteNamespaceRequest{}
}
type DeleteNamespaceRequest struct {
apps.GetRequest
}