mirror of
https://github.com/woodchen-ink/certimate.git
synced 2025-07-18 01:11:55 +08:00
98 lines
2.8 KiB
Go
98 lines
2.8 KiB
Go
package qiniu
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"github.com/qiniu/go-sdk/v7/auth"
|
|
"github.com/qiniu/go-sdk/v7/client"
|
|
)
|
|
|
|
type CdnManager struct {
|
|
client *client.Client
|
|
}
|
|
|
|
func NewCdnManager(mac *auth.Credentials) *CdnManager {
|
|
if mac == nil {
|
|
mac = auth.Default()
|
|
}
|
|
|
|
client := &client.Client{Client: &http.Client{Transport: newTransport(mac, nil)}}
|
|
return &CdnManager{client: client}
|
|
}
|
|
|
|
type GetDomainInfoResponse struct {
|
|
Code *int `json:"code,omitempty"`
|
|
Error *string `json:"error,omitempty"`
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
CName string `json:"cname"`
|
|
Https *struct {
|
|
CertID string `json:"certId"`
|
|
ForceHttps bool `json:"forceHttps"`
|
|
Http2Enable bool `json:"http2Enable"`
|
|
} `json:"https"`
|
|
PareDomain string `json:"pareDomain"`
|
|
OperationType string `json:"operationType"`
|
|
OperatingState string `json:"operatingState"`
|
|
OperatingStateDesc string `json:"operatingStateDesc"`
|
|
CreateAt string `json:"createAt"`
|
|
ModifyAt string `json:"modifyAt"`
|
|
}
|
|
|
|
func (m *CdnManager) GetDomainInfo(ctx context.Context, domain string) (*GetDomainInfoResponse, error) {
|
|
resp := new(GetDomainInfoResponse)
|
|
if err := m.client.Call(ctx, resp, http.MethodGet, urlf("domain/%s", domain), nil); err != nil {
|
|
return nil, err
|
|
}
|
|
return resp, nil
|
|
}
|
|
|
|
type ModifyDomainHttpsConfRequest struct {
|
|
CertID string `json:"certId"`
|
|
ForceHttps bool `json:"forceHttps"`
|
|
Http2Enable bool `json:"http2Enable"`
|
|
}
|
|
|
|
type ModifyDomainHttpsConfResponse struct {
|
|
Code *int `json:"code,omitempty"`
|
|
Error *string `json:"error,omitempty"`
|
|
}
|
|
|
|
func (m *CdnManager) ModifyDomainHttpsConf(ctx context.Context, domain string, certId string, forceHttps bool, http2Enable bool) (*ModifyDomainHttpsConfResponse, error) {
|
|
req := &ModifyDomainHttpsConfRequest{
|
|
CertID: certId,
|
|
ForceHttps: forceHttps,
|
|
Http2Enable: http2Enable,
|
|
}
|
|
resp := new(ModifyDomainHttpsConfResponse)
|
|
if err := m.client.CallWithJson(ctx, resp, http.MethodPut, urlf("domain/%s/httpsconf", domain), nil, req); err != nil {
|
|
return nil, err
|
|
}
|
|
return resp, nil
|
|
}
|
|
|
|
type EnableDomainHttpsRequest struct {
|
|
CertID string `json:"certId"`
|
|
ForceHttps bool `json:"forceHttps"`
|
|
Http2Enable bool `json:"http2Enable"`
|
|
}
|
|
|
|
type EnableDomainHttpsResponse struct {
|
|
Code *int `json:"code,omitempty"`
|
|
Error *string `json:"error,omitempty"`
|
|
}
|
|
|
|
func (m *CdnManager) EnableDomainHttps(ctx context.Context, domain string, certId string, forceHttps bool, http2Enable bool) (*EnableDomainHttpsResponse, error) {
|
|
req := &EnableDomainHttpsRequest{
|
|
CertID: certId,
|
|
ForceHttps: forceHttps,
|
|
Http2Enable: http2Enable,
|
|
}
|
|
resp := new(EnableDomainHttpsResponse)
|
|
if err := m.client.CallWithJson(ctx, resp, http.MethodPut, urlf("domain/%s/sslize", domain), nil, req); err != nil {
|
|
return nil, err
|
|
}
|
|
return resp, nil
|
|
}
|