package query

import (
	"github.com/gin-gonic/gin"
)

func (h *Handler) GetOrgByID(c *gin.Context) {
	org, err := h.query.GetOrgByID(c, c.Param("tidbcloud_org_id"))
	if err != nil {
		fail(c, err)
		return
	}

	success(c, &GetOrgResponse{
		Org: toOrgResponse(*org),
	})
}

func (h *Handler) GetUserOrgs(c *gin.Context) {
	result, err := h.query.GetUserOrgs(c, c.Query("user_email"))
	if err != nil {
		fail(c, err)
		return
	}

	success(c, &GetUserOrgsResponse{
		User: toUserResponse(result.User),
		Orgs: toOrgResponses(result.Orgs),
	})
}

func (h *Handler) GetUsersByOrgID(c *gin.Context) {
	orgID := c.Param("tidbcloud_org_id")
	users, err := h.query.GetUsersByOrgID(c, orgID)
	if err != nil {
		fail(c, err)
		return
	}

	success(c, &GetUsersByOrgIDResponse{
		TiDBCloudOrgID: orgID,
		Users:          toOrgUserResponses(users),
	})
}
