75 lines
1.8 KiB
Go
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)
|
|
}
|