package controller import ( "atsflare/service" "encoding/json" "github.com/gin-gonic/gin" "net/http" "strconv" "strings" ) // GetManagedDomains godoc // @Summary List managed domains // @Tags ManagedDomains // @Produce json // @Security BearerAuth // @Success 200 {object} map[string]interface{} // @Router /api/managed-domains/ [get] func GetManagedDomains(c *gin.Context) { domains, err := service.ListManagedDomains() if err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "success": true, "message": "", "data": domains, }) } // CreateManagedDomain godoc // @Summary Create managed domain // @Tags ManagedDomains // @Accept json // @Produce json // @Security BearerAuth // @Param payload body service.ManagedDomainInput true "Managed domain payload" // @Success 200 {object} map[string]interface{} // @Failure 400 {object} map[string]interface{} // @Router /api/managed-domains/ [post] func CreateManagedDomain(c *gin.Context) { var input service.ManagedDomainInput if err := json.NewDecoder(c.Request.Body).Decode(&input); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "success": false, "message": "无效的参数", }) return } domain, err := service.CreateManagedDomain(input) if err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "success": true, "message": "", "data": domain, }) } // UpdateManagedDomain godoc // @Summary Update managed domain // @Tags ManagedDomains // @Accept json // @Produce json // @Security BearerAuth // @Param id path int true "Managed domain ID" // @Param payload body service.ManagedDomainInput true "Managed domain payload" // @Success 200 {object} map[string]interface{} // @Failure 400 {object} map[string]interface{} // @Router /api/managed-domains/{id} [put] func UpdateManagedDomain(c *gin.Context) { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil || id == 0 { c.JSON(http.StatusBadRequest, gin.H{ "success": false, "message": "无效的参数", }) return } var input service.ManagedDomainInput if err = json.NewDecoder(c.Request.Body).Decode(&input); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "success": false, "message": "无效的参数", }) return } domain, err := service.UpdateManagedDomain(uint(id), input) if err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "success": true, "message": "", "data": domain, }) } // DeleteManagedDomain godoc // @Summary Delete managed domain // @Tags ManagedDomains // @Produce json // @Security BearerAuth // @Param id path int true "Managed domain ID" // @Success 200 {object} map[string]interface{} // @Failure 400 {object} map[string]interface{} // @Router /api/managed-domains/{id} [delete] func DeleteManagedDomain(c *gin.Context) { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil || id == 0 { c.JSON(http.StatusBadRequest, gin.H{ "success": false, "message": "无效的参数", }) return } if err = service.DeleteManagedDomain(uint(id)); err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "success": true, "message": "", }) } // MatchManagedDomainCertificate godoc // @Summary Match certificate for domain // @Tags ManagedDomains // @Produce json // @Security BearerAuth // @Param domain query string true "Domain" // @Success 200 {object} map[string]interface{} // @Router /api/managed-domains/match [get] func MatchManagedDomainCertificate(c *gin.Context) { domain := strings.TrimSpace(c.Query("domain")) result, err := service.MatchManagedDomainCertificate(domain) if err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, "message": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "success": true, "message": "", "data": result, }) }