Files
Safeline-Acme/internal/class/SafeLine/Method.go

53 lines
1.6 KiB
Go

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
}