package api

import (
	"fmt"

	"github.com/gin-gonic/gin"
	"github.com/tidbcloud/api-gateway/ui/internal/controller"
)

func ListNamespaces(ctx *gin.Context) {
	namespaces, err := controller.ListNamespaceNames()
	if err != nil {
		AmisError(ctx, fmt.Errorf("list namespaces from informer failed: %s", err))
		return
	}
	AmisSuccess(ctx, namespaces)
}

func ListServices(ctx *gin.Context) {
	services, err := controller.ListNodePortServiceNames(ctx.Param("namespace"))
	if err != nil {
		AmisError(ctx, fmt.Errorf("list service from informer failed: %s", err))
		return
	}
	AmisSuccess(ctx, services)
}

func ListServicePorts(ctx *gin.Context) {
	ports, err := controller.ListServicePorts(ctx.Param("namespace"), ctx.Param("service"))
	if err != nil {
		AmisError(ctx, fmt.Errorf("list service port from informer failed: %s", err))
		return
	}
	AmisSuccess(ctx, ports)
}
