package tepapis

import (
	"fmt"
	"net/http"

	"github.com/gin-gonic/gin"
	"github.com/pingcap/tep/pkg/apis/apiserver/v1alpha1"
	"github.com/pingcap/tep/pkg/utils"
)

func (api *API) CreateInstance(c *gin.Context) {
	instance := &v1alpha1.TiDBCluster{}
	if err := c.ShouldBindJSON(instance); err != nil {
		msg := fmt.Sprintf("invalid request body: %v", err)
		utils.SendMsg(c, nil, utils.NewAPIStatus(http.StatusBadRequest, msg))
		return
	}

	operator := utils.GetUsername(c)
	resp, status := api.Server.CreateInstance(operator, instance)
	utils.SendMsg(c, resp, status)
}
