Scert/backend/internal/httpapi/renewal_api.go

35 lines
933 B
Go

package httpapi
import (
"errors"
"net/http"
"github.com/gin-gonic/gin"
)
func (s *Server) runRenewalNow(c *gin.Context) {
if s.runRenewal == nil {
s.writeError(c, http.StatusNotImplemented, "续期服务未配置", errors.New("续期工作流未配置"))
return
}
report, err := s.runRenewal(c.Request.Context())
if len(report.Errors) > 0 {
// 保留失败数量,不将证书路径、凭据或下游 SDK 响应带回浏览器。
messages := make([]string, len(report.Errors))
for index := range messages {
messages[index] = "证书续期失败,请检查对应任务及受保护的服务日志"
}
report.Errors = messages
}
response := gin.H{"report": report}
if err != nil {
if s.logger != nil {
s.logger.Error("执行证书续期失败", "error", err)
}
response["error"] = "执行证书续期失败"
c.JSON(http.StatusConflict, response)
return
}
c.JSON(http.StatusOK, response)
}