2025-04-15 20:49:32 +08:00

75 lines
1.8 KiB
Go

package safeLineApi
import (
"encoding/json"
"os"
"path/filepath"
"time"
)
type UpsertReq struct {
Acme struct {
Domains []string `json:"domains"`
Email string `json:"email"`
} `json:"acme"`
Id int `json:"id"`
Manual struct {
Crt string `json:"crt"`
Key string `json:"key"`
} `json:"manual"`
Type int `json:"type"`
}
func (upsertReq *UpsertReq) Create(domains []string, email, dir string, id, Type int) {
certificate, _ := os.ReadFile(filepath.Join(dir, domains[0]+".crt"))
privateKey, _ := os.ReadFile(filepath.Join(dir, domains[0]+".key"))
upsertReq.Acme.Domains = domains
upsertReq.Acme.Email = email
upsertReq.Manual.Crt = string(certificate)
upsertReq.Manual.Key = string(privateKey)
upsertReq.Id = id
upsertReq.Type = Type
}
func (upsertReq *UpsertReq) Marshal() []byte {
data, _ := json.Marshal(upsertReq)
return data
}
type UpsertResp struct {
Data int `json:"data"`
Err interface{} `json:"err"`
Msg string `json:"msg"`
}
func (upsertResp *UpsertResp) Unmarshal(data []byte) {
_ = json.Unmarshal(data, &upsertResp)
}
type ListResp struct {
Data struct {
Nodes `json:"nodes"`
Total int `json:"total"`
} `json:"data"`
Err string `json:"err"`
Msg string `json:"msg"`
}
type Nodes []struct {
Id int `json:"id"`
Domains []string `json:"domains"`
Issuer string `json:"issuer"`
SelfSignature bool `json:"self_signature"`
Trusted bool `json:"trusted"`
Revoked bool `json:"revoked"`
Expired bool `json:"expired"`
Type int `json:"type"`
AcmeMessage string `json:"acme_message"`
ValidBefore time.Time `json:"valid_before"`
RelatedSites []string `json:"related_sites"`
}
func (listResp *ListResp) Unmarshal(data []byte) {
_ = json.Unmarshal(data, &listResp)
}