refactor: optimize code

This commit is contained in:
Fu Diwei 2024-10-20 20:42:13 +08:00
parent 560d21c854
commit f6a3f4edfa
3 changed files with 29 additions and 32 deletions

View File

@ -13,6 +13,7 @@ import (
"github.com/usual2970/certimate/internal/domain"
uploaderImpl "github.com/usual2970/certimate/internal/pkg/core/uploader/impl"
"github.com/usual2970/certimate/internal/pkg/utils/cast"
)
type HuaweiCloudCDNDeployer struct {
@ -86,14 +87,14 @@ func (d *HuaweiCloudCDNDeployer) Deploy(ctx context.Context) error {
d.infos = append(d.infos, toStr("已上传证书", uploadResult))
updateDomainMultiCertificatesReqBodyContent.CertificateType = int32Ptr(2)
updateDomainMultiCertificatesReqBodyContent.SCMCertificateId = stringPtr(uploadResult.CertId)
updateDomainMultiCertificatesReqBodyContent.CertName = stringPtr(uploadResult.CertName)
updateDomainMultiCertificatesReqBodyContent.CertificateType = cast.Int32Ptr(2)
updateDomainMultiCertificatesReqBodyContent.SCMCertificateId = cast.StringPtr(uploadResult.CertId)
updateDomainMultiCertificatesReqBodyContent.CertName = cast.StringPtr(uploadResult.CertName)
} else {
updateDomainMultiCertificatesReqBodyContent.CertificateType = int32Ptr(0)
updateDomainMultiCertificatesReqBodyContent.CertName = stringPtr(fmt.Sprintf("certimate-%d", time.Now().UnixMilli()))
updateDomainMultiCertificatesReqBodyContent.Certificate = stringPtr(d.option.Certificate.Certificate)
updateDomainMultiCertificatesReqBodyContent.PrivateKey = stringPtr(d.option.Certificate.PrivateKey)
updateDomainMultiCertificatesReqBodyContent.CertificateType = cast.Int32Ptr(0)
updateDomainMultiCertificatesReqBodyContent.CertName = cast.StringPtr(fmt.Sprintf("certimate-%d", time.Now().UnixMilli()))
updateDomainMultiCertificatesReqBodyContent.Certificate = cast.StringPtr(d.option.Certificate.Certificate)
updateDomainMultiCertificatesReqBodyContent.PrivateKey = cast.StringPtr(d.option.Certificate.PrivateKey)
}
updateDomainMultiCertificatesReqBodyContent = mergeHuaweiCloudCDNConfig(showDomainFullConfigResp.Configs, updateDomainMultiCertificatesReqBodyContent)
updateDomainMultiCertificatesReq := &huaweicloudCDNUpdateDomainMultiCertificatesRequest{
@ -177,11 +178,11 @@ func mergeHuaweiCloudCDNConfig(src *cdnModel.ConfigsGetBody, dest *huaweicloudCD
// 而且蛋疼的是查询接口返回的数据结构和更新接口传入的参数结构不一致,需要做很多转化
if *src.OriginProtocol == "follow" {
dest.AccessOriginWay = int32Ptr(1)
dest.AccessOriginWay = cast.Int32Ptr(1)
} else if *src.OriginProtocol == "http" {
dest.AccessOriginWay = int32Ptr(2)
dest.AccessOriginWay = cast.Int32Ptr(2)
} else if *src.OriginProtocol == "https" {
dest.AccessOriginWay = int32Ptr(3)
dest.AccessOriginWay = cast.Int32Ptr(3)
}
if src.ForceRedirect != nil {
@ -197,17 +198,9 @@ func mergeHuaweiCloudCDNConfig(src *cdnModel.ConfigsGetBody, dest *huaweicloudCD
if src.Https != nil {
if *src.Https.Http2Status == "on" {
dest.Http2 = int32Ptr(1)
dest.Http2 = cast.Int32Ptr(1)
}
}
return dest
}
func int32Ptr(i int32) *int32 {
return &i
}
func stringPtr(s string) *string {
return &s
}

View File

@ -11,6 +11,7 @@ import (
scmRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/scm/v3/region"
"github.com/usual2970/certimate/internal/pkg/core/uploader"
"github.com/usual2970/certimate/internal/pkg/utils/cast"
"github.com/usual2970/certimate/internal/pkg/utils/x509"
)
@ -21,6 +22,7 @@ type HuaweiCloudSCMUploaderConfig struct {
}
type HuaweiCloudSCMUploader struct {
config *HuaweiCloudSCMUploaderConfig
client *scm.ScmClient
}
@ -31,6 +33,7 @@ func NewHuaweiCloudSCMUploader(config *HuaweiCloudSCMUploaderConfig) (*HuaweiClo
}
return &HuaweiCloudSCMUploader{
config: config,
client: client,
}, nil
}
@ -49,10 +52,10 @@ func (u *HuaweiCloudSCMUploader) Upload(ctx context.Context, certPem string, pri
listCertificatesOffset := int32(0)
for {
listCertificatesReq := &scmModel.ListCertificatesRequest{
Limit: int32Ptr(listCertificatesLimit),
Offset: int32Ptr(listCertificatesOffset),
SortDir: stringPtr("DESC"),
SortKey: stringPtr("certExpiredTime"),
Limit: cast.Int32Ptr(listCertificatesLimit),
Offset: cast.Int32Ptr(listCertificatesOffset),
SortDir: cast.StringPtr("DESC"),
SortKey: cast.StringPtr("certExpiredTime"),
}
listCertificatesResp, err := u.client.ListCertificates(listCertificatesReq)
if err != nil {
@ -129,7 +132,7 @@ func (u *HuaweiCloudSCMUploader) Upload(ctx context.Context, certPem string, pri
}, nil
}
func createClient(region, accessKeyId, secretAccessKey string) (*scm.ScmClient, error) {
func (u *HuaweiCloudSCMUploader) createClient(region, accessKeyId, secretAccessKey string) (*scm.ScmClient, error) {
auth, err := basic.NewCredentialsBuilder().
WithAk(accessKeyId).
WithSk(secretAccessKey).
@ -158,11 +161,3 @@ func createClient(region, accessKeyId, secretAccessKey string) (*scm.ScmClient,
client := scm.NewScmClient(hcClient)
return client, nil
}
func int32Ptr(i int32) *int32 {
return &i
}
func stringPtr(s string) *string {
return &s
}

View File

@ -0,0 +1,9 @@
package cast
func Int32Ptr(i int32) *int32 {
return &i
}
func StringPtr(s string) *string {
return &s
}