package SafeLine import ( "SafeLine-Acme/internal/app/logger" "SafeLine-Acme/pkg/utils" "bytes" "io" "net/http" "os" ) func (safeLine *Object) GetCertNodes() []Nodes { header := http.Header{ "X-SLCE-API-TOKEN": []string{safeLine.ApiToken}, } resp, err := utils.Request("GET", safeLine.SSLCertUrl(), nil, header) if err != nil { logger.Error.Printf("请求接口 %s/api/open/cert%s 时发生错误: %s%s%s", logger.Cyan, logger.Reset, logger.Red, err, logger.Reset) os.Exit(0) } defer resp.Body.Close() data, _ := io.ReadAll(resp.Body) var listResp ListResp listResp.Unmarshal(data) return listResp.Data.Nodes } func (safeLine *Object) UpdateCert(email string, Certificate, PrivateKey []byte, cert Nodes) ([]string, []string) { header := http.Header{ "X-SLCE-API-TOKEN": []string{safeLine.ApiToken}, "Content-Type": []string{"application/json"}, } var updateReq UpdateReq updateReq.Create(Certificate, PrivateKey, cert.Domains, email, cert.Id, cert.Type) resp, err := utils.Request("POST", safeLine.SSLCertUrl(), bytes.NewReader(updateReq.Marshal()), header) if err != nil { logger.Error.Printf("更新证书时发生错误: %s%s%s", logger.Red, err, logger.Reset) return nil, nil } defer resp.Body.Close() data, _ := io.ReadAll(resp.Body) var updateResp UpdateResp updateResp.Unmarshal(data) if updateResp.Msg != "" { logger.Error.Printf("域名 %s%s%s 证书更新失败: %s%s%s", logger.Cyan, cert.Domains, logger.Reset, logger.Red, updateResp.Msg, logger.Reset) return nil, cert.Domains } logger.Success.Printf("域名 %s%s%s 证书更新成功!", logger.Cyan, cert.Domains, logger.Reset) return cert.Domains, nil }