refactor code structure (#1738)
This commit is contained in:
@@ -1,14 +1,76 @@
|
||||
package v1
|
||||
|
||||
import "github.com/emicklei/go-restful"
|
||||
import (
|
||||
"github.com/emicklei/go-restful"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/klog"
|
||||
"kubesphere.io/kubesphere/pkg/api"
|
||||
"kubesphere.io/kubesphere/pkg/constants"
|
||||
"kubesphere.io/kubesphere/pkg/informers"
|
||||
"kubesphere.io/kubesphere/pkg/models"
|
||||
"kubesphere.io/kubesphere/pkg/models/openpitrix/application"
|
||||
"kubesphere.io/kubesphere/pkg/models/resources/v1alpha3/resource"
|
||||
"kubesphere.io/kubesphere/pkg/server/params"
|
||||
"openpitrix.io/openpitrix/pkg/pb"
|
||||
)
|
||||
|
||||
type openpitrixHandler struct {
|
||||
namespacesGetter *resource.NamespacedResourceGetter
|
||||
applicationOperator application.Interface
|
||||
}
|
||||
|
||||
func newOpenpitrixHandler() *openpitrixHandler {
|
||||
return &openpitrixHandler{}
|
||||
func newOpenpitrixHandler(factory informers.InformerFactory, client pb.ClusterManagerClient) *openpitrixHandler {
|
||||
return &openpitrixHandler{
|
||||
namespacesGetter: resource.New(factory),
|
||||
applicationOperator: application.NewApplicaitonOperator(factory.KubernetesSharedInformerFactory(), client),
|
||||
}
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) handleListApplications(request *restful.Request, response *restful.Response) {
|
||||
limit, offset := params.ParsePaging(request.QueryParameter(params.PagingParam))
|
||||
namespaceName := request.PathParameter("namespace")
|
||||
conditions, err := params.ParseConditions(request.QueryParameter(params.ConditionsParam))
|
||||
orderBy := request.QueryParameter(params.OrderByParam)
|
||||
reverse := params.ParseReverse(request)
|
||||
|
||||
if orderBy == "" {
|
||||
orderBy = "create_time"
|
||||
reverse = true
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
api.HandleBadRequest(response, err)
|
||||
return
|
||||
}
|
||||
|
||||
if namespaceName != "" {
|
||||
namespace, err := h.namespacesGetter.Get(api.ResourceKindNamespace, "", namespaceName)
|
||||
|
||||
if err != nil {
|
||||
api.HandleInternalError(response, err)
|
||||
return
|
||||
}
|
||||
var runtimeId string
|
||||
|
||||
if ns, ok := namespace.(*v1.Namespace); ok {
|
||||
runtimeId = ns.Annotations[constants.OpenPitrixRuntimeAnnotationKey]
|
||||
}
|
||||
|
||||
if runtimeId == "" {
|
||||
response.WriteAsJson(models.PageableResponse{Items: []interface{}{}, TotalCount: 0})
|
||||
return
|
||||
} else {
|
||||
conditions.Match["runtime_id"] = runtimeId
|
||||
}
|
||||
}
|
||||
|
||||
result, err := h.applicationOperator.List(conditions, limit, offset, orderBy, reverse)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
api.HandleInternalError(response, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp.WriteAsJson(result)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user