From 469c24751e63b3de519c717879a608c78e40a671 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 19 Feb 2025 21:55:38 +0800 Subject: [PATCH] refactor: reimpl 3rd sdks --- internal/domain/provider.go | 2 + .../baotapanel-site/baotapanel_site_test.go | 8 +-- internal/pkg/vendors/baishan-sdk/api.go | 31 ++++------- internal/pkg/vendors/baishan-sdk/client.go | 18 ++++--- internal/pkg/vendors/btpanel-sdk/api.go | 54 ++++++------------- internal/pkg/vendors/btpanel-sdk/client.go | 24 +++++---- internal/pkg/vendors/cachefly-sdk/api.go | 11 ++-- internal/pkg/vendors/cachefly-sdk/client.go | 18 ++++--- internal/pkg/vendors/cdnfly-sdk/api.go | 41 +++++--------- internal/pkg/vendors/cdnfly-sdk/client.go | 18 ++++--- internal/pkg/vendors/gname-sdk/api.go | 40 ++++---------- internal/pkg/vendors/gname-sdk/client.go | 19 +++---- internal/pkg/vendors/gname-sdk/models.go | 10 ++-- internal/pkg/vendors/safeline-sdk/api.go | 14 ++--- internal/pkg/vendors/safeline-sdk/client.go | 8 +-- migrations/1739462400_collections_snapshot.go | 4 ++ 16 files changed, 131 insertions(+), 189 deletions(-) diff --git a/internal/domain/provider.go b/internal/domain/provider.go index 93f85561..08527fdd 100644 --- a/internal/domain/provider.go +++ b/internal/domain/provider.go @@ -34,6 +34,7 @@ const ( AccessProviderTypeGoDaddy = AccessProviderType("godaddy") AccessProviderTypeGoEdge = AccessProviderType("goedge") // GoEdge(预留) AccessProviderTypeHuaweiCloud = AccessProviderType("huaweicloud") + AccessProviderTypeJDCloud = AccessProviderType("jdcloud") // 京东云(预留) AccessProviderTypeKubernetes = AccessProviderType("k8s") AccessProviderTypeLocal = AccessProviderType("local") AccessProviderTypeNameDotCom = AccessProviderType("namedotcom") @@ -41,6 +42,7 @@ const ( AccessProviderTypeNS1 = AccessProviderType("ns1") AccessProviderTypePowerDNS = AccessProviderType("powerdns") AccessProviderTypeQiniu = AccessProviderType("qiniu") + AccessProviderTypeQingCloud = AccessProviderType("qingcloud") // 青云(预留) AccessProviderTypeRainYun = AccessProviderType("rainyun") AccessProviderTypeSafeLine = AccessProviderType("safeline") AccessProviderTypeSSH = AccessProviderType("ssh") diff --git a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go index 00d32461..4c31b021 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go +++ b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go @@ -57,9 +57,11 @@ func TestDeploy(t *testing.T) { }, "\n")) deployer, err := provider.NewDeployer(&provider.DeployerConfig{ - ApiUrl: fApiUrl, - ApiKey: fApiKey, - SiteName: fSiteName, + ApiUrl: fApiUrl, + ApiKey: fApiKey, + SiteType: fSiteType, + SiteName: fSiteName, + SiteNames: []string{fSiteName}, }) if err != nil { t.Errorf("err: %+v", err) diff --git a/internal/pkg/vendors/baishan-sdk/api.go b/internal/pkg/vendors/baishan-sdk/api.go index 9e6a2bc6..c2f76adc 100644 --- a/internal/pkg/vendors/baishan-sdk/api.go +++ b/internal/pkg/vendors/baishan-sdk/api.go @@ -1,45 +1,32 @@ package baishansdk import ( - "encoding/json" "net/http" ) func (c *Client) CreateCertificate(req *CreateCertificateRequest) (*CreateCertificateResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := CreateCertificateResponse{} - err := c.sendRequestWithResult(http.MethodPost, "/v2/domain/certificate", params, &result) + resp := CreateCertificateResponse{} + err := c.sendRequestWithResult(http.MethodPost, "/v2/domain/certificate", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) GetDomainConfig(req *GetDomainConfigRequest) (*GetDomainConfigResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := GetDomainConfigResponse{} - err := c.sendRequestWithResult(http.MethodGet, "/v2/domain/config", params, &result) + resp := GetDomainConfigResponse{} + err := c.sendRequestWithResult(http.MethodGet, "/v2/domain/config", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) SetDomainConfig(req *SetDomainConfigRequest) (*SetDomainConfigResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := SetDomainConfigResponse{} - err := c.sendRequestWithResult(http.MethodPost, "/v2/domain/config", params, &result) + resp := SetDomainConfigResponse{} + err := c.sendRequestWithResult(http.MethodPost, "/v2/domain/config", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } diff --git a/internal/pkg/vendors/baishan-sdk/client.go b/internal/pkg/vendors/baishan-sdk/client.go index d30dd05f..ff66af5b 100644 --- a/internal/pkg/vendors/baishan-sdk/client.go +++ b/internal/pkg/vendors/baishan-sdk/client.go @@ -29,17 +29,23 @@ func (c *Client) WithTimeout(timeout time.Duration) *Client { return c } -func (c *Client) sendRequest(method string, path string, params map[string]any) (*resty.Response, error) { +func (c *Client) sendRequest(method string, path string, params interface{}) (*resty.Response, error) { req := c.client.R() req.Method = method req.URL = "https://cdn.api.baishan.com" + path if strings.EqualFold(method, http.MethodGet) { - data := make(map[string]string) - for k, v := range params { - data[k] = fmt.Sprintf("%v", v) + qs := make(map[string]string) + if params != nil { + temp := make(map[string]any) + jsonData, _ := json.Marshal(params) + json.Unmarshal(jsonData, &temp) + for k, v := range temp { + qs[k] = fmt.Sprintf("%v", v) + } } + req = req. - SetQueryParams(data). + SetQueryParams(qs). SetQueryParam("token", c.apiToken) } else { req = req. @@ -58,7 +64,7 @@ func (c *Client) sendRequest(method string, path string, params map[string]any) return resp, nil } -func (c *Client) sendRequestWithResult(method string, path string, params map[string]any, result BaseResponse) error { +func (c *Client) sendRequestWithResult(method string, path string, params interface{}, result BaseResponse) error { resp, err := c.sendRequest(method, path, params) if err != nil { return err diff --git a/internal/pkg/vendors/btpanel-sdk/api.go b/internal/pkg/vendors/btpanel-sdk/api.go index b4efa433..434e7f6e 100644 --- a/internal/pkg/vendors/btpanel-sdk/api.go +++ b/internal/pkg/vendors/btpanel-sdk/api.go @@ -1,70 +1,46 @@ package btpanelsdk -import ( - "encoding/json" -) - func (c *Client) ConfigSavePanelSSL(req *ConfigSavePanelSSLRequest) (*ConfigSavePanelSSLResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := ConfigSavePanelSSLResponse{} - err := c.sendRequestWithResult("/config?action=SavePanelSSL", params, &result) + resp := ConfigSavePanelSSLResponse{} + err := c.sendRequestWithResult("/config?action=SavePanelSSL", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) SiteSetSSL(req *SiteSetSSLRequest) (*SiteSetSSLResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := SiteSetSSLResponse{} - err := c.sendRequestWithResult("/site?action=SetSSL", params, &result) + resp := SiteSetSSLResponse{} + err := c.sendRequestWithResult("/site?action=SetSSL", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) SystemServiceAdmin(req *SystemServiceAdminRequest) (*SystemServiceAdminResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := SystemServiceAdminResponse{} - err := c.sendRequestWithResult("/system?action=ServiceAdmin", params, &result) + resp := SystemServiceAdminResponse{} + err := c.sendRequestWithResult("/system?action=ServiceAdmin", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) SSLCertSaveCert(req *SSLCertSaveCertRequest) (*SSLCertSaveCertResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := SSLCertSaveCertResponse{} - err := c.sendRequestWithResult("/ssl/cert/save_cert", params, &result) + resp := SSLCertSaveCertResponse{} + err := c.sendRequestWithResult("/ssl/cert/save_cert", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) SSLSetBatchCertToSite(req *SSLSetBatchCertToSiteRequest) (*SSLSetBatchCertToSiteResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := SSLSetBatchCertToSiteResponse{} - err := c.sendRequestWithResult("/ssl?action=SetBatchCertToSite", params, &result) + resp := SSLSetBatchCertToSiteResponse{} + err := c.sendRequestWithResult("/ssl?action=SetBatchCertToSite", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } diff --git a/internal/pkg/vendors/btpanel-sdk/client.go b/internal/pkg/vendors/btpanel-sdk/client.go index 32f3eba8..8ef38864 100644 --- a/internal/pkg/vendors/btpanel-sdk/client.go +++ b/internal/pkg/vendors/btpanel-sdk/client.go @@ -42,19 +42,25 @@ func (c *Client) generateSignature(timestamp string) string { return signMd5Hex } -func (c *Client) sendRequest(path string, params map[string]any) (*resty.Response, error) { - if params == nil { - params = make(map[string]any) - } - +func (c *Client) sendRequest(path string, params interface{}) (*resty.Response, error) { timestamp := time.Now().Unix() - params["request_time"] = timestamp - params["request_token"] = c.generateSignature(fmt.Sprintf("%d", timestamp)) + + data := make(map[string]any) + if params != nil { + temp := make(map[string]any) + jsonData, _ := json.Marshal(params) + json.Unmarshal(jsonData, &temp) + for k, v := range temp { + data[k] = v + } + } + data["request_time"] = timestamp + data["request_token"] = c.generateSignature(fmt.Sprintf("%d", timestamp)) url := c.apiHost + path req := c.client.R(). SetHeader("Content-Type", "application/json"). - SetBody(params) + SetBody(data) resp, err := req.Post(url) if err != nil { return nil, fmt.Errorf("baota api error: failed to send request: %w", err) @@ -65,7 +71,7 @@ func (c *Client) sendRequest(path string, params map[string]any) (*resty.Respons return resp, nil } -func (c *Client) sendRequestWithResult(path string, params map[string]any, result BaseResponse) error { +func (c *Client) sendRequestWithResult(path string, params interface{}, result BaseResponse) error { resp, err := c.sendRequest(path, params) if err != nil { return err diff --git a/internal/pkg/vendors/cachefly-sdk/api.go b/internal/pkg/vendors/cachefly-sdk/api.go index 16a3411a..ad6e3b8d 100644 --- a/internal/pkg/vendors/cachefly-sdk/api.go +++ b/internal/pkg/vendors/cachefly-sdk/api.go @@ -1,19 +1,14 @@ package cacheflysdk import ( - "encoding/json" "net/http" ) func (c *Client) CreateCertificate(req *CreateCertificateRequest) (*CreateCertificateResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := CreateCertificateResponse{} - err := c.sendRequestWithResult(http.MethodPost, "/certificates", params, &result) + resp := CreateCertificateResponse{} + err := c.sendRequestWithResult(http.MethodPost, "/certificates", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } diff --git a/internal/pkg/vendors/cachefly-sdk/client.go b/internal/pkg/vendors/cachefly-sdk/client.go index 6f6a4790..e48e2010 100644 --- a/internal/pkg/vendors/cachefly-sdk/client.go +++ b/internal/pkg/vendors/cachefly-sdk/client.go @@ -29,17 +29,23 @@ func (c *Client) WithTimeout(timeout time.Duration) *Client { return c } -func (c *Client) sendRequest(method string, path string, params map[string]any) (*resty.Response, error) { +func (c *Client) sendRequest(method string, path string, params interface{}) (*resty.Response, error) { req := c.client.R() req.Method = method req.URL = "https://api.cachefly.com/api/2.5" + path req = req.SetHeader("x-cf-authorization", "Bearer "+c.apiToken) if strings.EqualFold(method, http.MethodGet) { - data := make(map[string]string) - for k, v := range params { - data[k] = fmt.Sprintf("%v", v) + qs := make(map[string]string) + if params != nil { + temp := make(map[string]any) + jsonData, _ := json.Marshal(params) + json.Unmarshal(jsonData, &temp) + for k, v := range temp { + qs[k] = fmt.Sprintf("%v", v) + } } - req = req.SetQueryParams(data) + + req = req.SetQueryParams(qs) } else { req = req. SetHeader("Content-Type", "application/json"). @@ -56,7 +62,7 @@ func (c *Client) sendRequest(method string, path string, params map[string]any) return resp, nil } -func (c *Client) sendRequestWithResult(method string, path string, params map[string]any, result BaseResponse) error { +func (c *Client) sendRequestWithResult(method string, path string, params interface{}, result BaseResponse) error { resp, err := c.sendRequest(method, path, params) if err != nil { return err diff --git a/internal/pkg/vendors/cdnfly-sdk/api.go b/internal/pkg/vendors/cdnfly-sdk/api.go index 5f8ebb0a..211baa33 100644 --- a/internal/pkg/vendors/cdnfly-sdk/api.go +++ b/internal/pkg/vendors/cdnfly-sdk/api.go @@ -1,59 +1,42 @@ package cdnflysdk import ( - "encoding/json" "fmt" "net/http" ) func (c *Client) GetSite(req *GetSiteRequest) (*GetSiteResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := GetSiteResponse{} - err := c.sendRequestWithResult(http.MethodGet, fmt.Sprintf("/v1/sites/%s", req.Id), params, &result) + resp := GetSiteResponse{} + err := c.sendRequestWithResult(http.MethodGet, fmt.Sprintf("/v1/sites/%s", req.Id), req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) UpdateSite(req *UpdateSiteRequest) (*UpdateSiteResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := UpdateSiteResponse{} - err := c.sendRequestWithResult(http.MethodPut, fmt.Sprintf("/v1/sites/%s", req.Id), params, &result) + resp := UpdateSiteResponse{} + err := c.sendRequestWithResult(http.MethodPut, fmt.Sprintf("/v1/sites/%s", req.Id), req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) CreateCertificate(req *CreateCertificateRequest) (*CreateCertificateResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := CreateCertificateResponse{} - err := c.sendRequestWithResult(http.MethodPost, "/v1/certs", params, &result) + resp := CreateCertificateResponse{} + err := c.sendRequestWithResult(http.MethodPost, "/v1/certs", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) UpdateCertificate(req *UpdateCertificateRequest) (*UpdateCertificateResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := UpdateCertificateResponse{} - err := c.sendRequestWithResult(http.MethodPut, fmt.Sprintf("/v1/certs/%s", req.Id), params, &result) + resp := UpdateCertificateResponse{} + err := c.sendRequestWithResult(http.MethodPut, fmt.Sprintf("/v1/certs/%s", req.Id), req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } diff --git a/internal/pkg/vendors/cdnfly-sdk/client.go b/internal/pkg/vendors/cdnfly-sdk/client.go index 910020b3..630e156c 100644 --- a/internal/pkg/vendors/cdnfly-sdk/client.go +++ b/internal/pkg/vendors/cdnfly-sdk/client.go @@ -34,7 +34,7 @@ func (c *Client) WithTimeout(timeout time.Duration) *Client { return c } -func (c *Client) sendRequest(method string, path string, params map[string]any) (*resty.Response, error) { +func (c *Client) sendRequest(method string, path string, params interface{}) (*resty.Response, error) { req := c.client.R() req.Method = method req.URL = c.apiHost + path @@ -42,11 +42,17 @@ func (c *Client) sendRequest(method string, path string, params map[string]any) SetHeader("api-key", c.apiKey). SetHeader("api-secret", c.apiSecret) if strings.EqualFold(method, http.MethodGet) { - data := make(map[string]string) - for k, v := range params { - data[k] = fmt.Sprintf("%v", v) + qs := make(map[string]string) + if params != nil { + temp := make(map[string]any) + jsonData, _ := json.Marshal(params) + json.Unmarshal(jsonData, &temp) + for k, v := range temp { + qs[k] = fmt.Sprintf("%v", v) + } } - req = req.SetQueryParams(data) + + req = req.SetQueryParams(qs) } else { req = req. SetHeader("Content-Type", "application/json"). @@ -63,7 +69,7 @@ func (c *Client) sendRequest(method string, path string, params map[string]any) return resp, nil } -func (c *Client) sendRequestWithResult(method string, path string, params map[string]any, result BaseResponse) error { +func (c *Client) sendRequestWithResult(method string, path string, params interface{}, result BaseResponse) error { resp, err := c.sendRequest(method, path, params) if err != nil { return err diff --git a/internal/pkg/vendors/gname-sdk/api.go b/internal/pkg/vendors/gname-sdk/api.go index 20891405..d01574c7 100644 --- a/internal/pkg/vendors/gname-sdk/api.go +++ b/internal/pkg/vendors/gname-sdk/api.go @@ -1,16 +1,8 @@ package gnamesdk -import ( - "encoding/json" -) - func (c *Client) AddDomainResolution(req *AddDomainResolutionRequest) (*AddDomainResolutionResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - result := AddDomainResolutionResponse{} - err := c.sendRequestWithResult("/api/resolution/add", params, &result) + err := c.sendRequestWithResult("/api/resolution/add", req, &result) if err != nil { return nil, err } @@ -18,40 +10,28 @@ func (c *Client) AddDomainResolution(req *AddDomainResolutionRequest) (*AddDomai } func (c *Client) ModifyDomainResolution(req *ModifyDomainResolutionRequest) (*ModifyDomainResolutionResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := ModifyDomainResolutionResponse{} - err := c.sendRequestWithResult("/api/resolution/edit", params, &result) + resp := ModifyDomainResolutionResponse{} + err := c.sendRequestWithResult("/api/resolution/edit", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) DeleteDomainResolution(req *DeleteDomainResolutionRequest) (*DeleteDomainResolutionResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := DeleteDomainResolutionResponse{} - err := c.sendRequestWithResult("/api/resolution/delete", params, &result) + resp := DeleteDomainResolutionResponse{} + err := c.sendRequestWithResult("/api/resolution/delete", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } func (c *Client) ListDomainResolution(req *ListDomainResolutionRequest) (*ListDomainResolutionResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := ListDomainResolutionResponse{} - err := c.sendRequestWithResult("/api/resolution/list", params, &result) + resp := ListDomainResolutionResponse{} + err := c.sendRequestWithResult("/api/resolution/list", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } diff --git a/internal/pkg/vendors/gname-sdk/client.go b/internal/pkg/vendors/gname-sdk/client.go index d3b9fb86..c4225357 100644 --- a/internal/pkg/vendors/gname-sdk/client.go +++ b/internal/pkg/vendors/gname-sdk/client.go @@ -58,14 +58,15 @@ func (c *Client) generateSignature(params map[string]string) string { return strings.ToUpper(fmt.Sprintf("%x", hash)) } -func (c *Client) sendRequest(path string, params map[string]any) (*resty.Response, error) { - if params == nil { - params = make(map[string]any) - } - +func (c *Client) sendRequest(path string, params interface{}) (*resty.Response, error) { data := make(map[string]string) - for k, v := range params { - data[k] = fmt.Sprintf("%v", v) + if params != nil { + temp := make(map[string]any) + jsonData, _ := json.Marshal(params) + json.Unmarshal(jsonData, &temp) + for k, v := range temp { + data[k] = fmt.Sprintf("%v", v) + } } data["appid"] = c.appId data["gntime"] = fmt.Sprintf("%d", time.Now().Unix()) @@ -85,7 +86,7 @@ func (c *Client) sendRequest(path string, params map[string]any) (*resty.Respons return resp, nil } -func (c *Client) sendRequestWithResult(path string, params map[string]any, result BaseResponse) error { +func (c *Client) sendRequestWithResult(path string, params interface{}, result BaseResponse) error { resp, err := c.sendRequest(path, params) if err != nil { return err @@ -94,7 +95,7 @@ func (c *Client) sendRequestWithResult(path string, params map[string]any, resul if err := json.Unmarshal(resp.Body(), &result); err != nil { return fmt.Errorf("gname api error: failed to parse response: %w", err) } else if errcode := result.GetCode(); errcode != 1 { - return fmt.Errorf("gname api error: %d - %s", errcode, result.GetMsg()) + return fmt.Errorf("gname api error: %d - %s", errcode, result.GetMessage()) } return nil diff --git a/internal/pkg/vendors/gname-sdk/models.go b/internal/pkg/vendors/gname-sdk/models.go index 282439d2..c7ade452 100644 --- a/internal/pkg/vendors/gname-sdk/models.go +++ b/internal/pkg/vendors/gname-sdk/models.go @@ -2,20 +2,20 @@ package gnamesdk type BaseResponse interface { GetCode() int - GetMsg() string + GetMessage() string } type baseResponse struct { - Code int `json:"code"` - Msg string `json:"msg"` + Code int `json:"code"` + Message string `json:"msg"` } func (r *baseResponse) GetCode() int { return r.Code } -func (r *baseResponse) GetMsg() string { - return r.Msg +func (r *baseResponse) GetMessage() string { + return r.Message } type AddDomainResolutionRequest struct { diff --git a/internal/pkg/vendors/safeline-sdk/api.go b/internal/pkg/vendors/safeline-sdk/api.go index ae0a56d1..17af6c83 100644 --- a/internal/pkg/vendors/safeline-sdk/api.go +++ b/internal/pkg/vendors/safeline-sdk/api.go @@ -1,18 +1,10 @@ package safelinesdk -import ( - "encoding/json" -) - func (c *Client) UpdateCertificate(req *UpdateCertificateRequest) (*UpdateCertificateResponse, error) { - params := make(map[string]any) - jsonData, _ := json.Marshal(req) - json.Unmarshal(jsonData, ¶ms) - - result := UpdateCertificateResponse{} - err := c.sendRequestWithResult("/api/open/cert", params, &result) + resp := UpdateCertificateResponse{} + err := c.sendRequestWithResult("/api/open/cert", req, &resp) if err != nil { return nil, err } - return &result, nil + return &resp, nil } diff --git a/internal/pkg/vendors/safeline-sdk/client.go b/internal/pkg/vendors/safeline-sdk/client.go index 5aa19c07..c6e6caf1 100644 --- a/internal/pkg/vendors/safeline-sdk/client.go +++ b/internal/pkg/vendors/safeline-sdk/client.go @@ -31,11 +31,7 @@ func (c *Client) WithTimeout(timeout time.Duration) *Client { return c } -func (c *Client) sendRequest(path string, params map[string]any) (*resty.Response, error) { - if params == nil { - params = make(map[string]any) - } - +func (c *Client) sendRequest(path string, params interface{}) (*resty.Response, error) { url := c.apiHost + path req := c.client.R(). SetHeader("Content-Type", "application/json"). @@ -51,7 +47,7 @@ func (c *Client) sendRequest(path string, params map[string]any) (*resty.Respons return resp, nil } -func (c *Client) sendRequestWithResult(path string, params map[string]any, result BaseResponse) error { +func (c *Client) sendRequestWithResult(path string, params interface{}, result BaseResponse) error { resp, err := c.sendRequest(path, params) if err != nil { return err diff --git a/migrations/1739462400_collections_snapshot.go b/migrations/1739462400_collections_snapshot.go index 523792c7..9c079405 100644 --- a/migrations/1739462400_collections_snapshot.go +++ b/migrations/1739462400_collections_snapshot.go @@ -73,6 +73,7 @@ func init() { "godaddy", "goedge", "huaweicloud", + "jdcloud", "k8s", "local", "namedotcom", @@ -80,6 +81,7 @@ func init() { "ns1", "powerdns", "qiniu", + "qingcloud", "rainyun", "safeline", "ssh", @@ -179,6 +181,7 @@ func init() { "godaddy", "goedge", "huaweicloud", + "jdcloud", "k8s", "local", "namedotcom", @@ -186,6 +189,7 @@ func init() { "ns1", "powerdns", "qiniu", + "qingcloud", "rainyun", "safeline", "ssh",