refactor: clean code

This commit is contained in:
Fu Diwei
2025-01-05 04:08:34 +08:00
parent 8af5235e4d
commit 2a68372713
5 changed files with 49 additions and 66 deletions

View File

@@ -2,47 +2,55 @@ package deployer
import (
"context"
"fmt"
"github.com/usual2970/certimate/internal/applicant"
"github.com/usual2970/certimate/internal/domain"
"github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/logger"
"github.com/usual2970/certimate/internal/repository"
)
type DeployerOption struct {
NodeId string `json:"nodeId"`
Domains string `json:"domains"`
AccessConfig string `json:"accessConfig"`
AccessRecord *domain.Access `json:"-"`
DeployConfig domain.DeployConfig `json:"deployConfig"`
Certificate applicant.ApplyResult `json:"certificate"`
}
type Deployer interface {
Deploy(ctx context.Context) error
}
func NewWithProviderAndOption(provider string, option *DeployerOption) (Deployer, error) {
deployer, logger, err := createDeployer(domain.DeployProviderType(provider), option.AccessRecord.Config, option.DeployConfig.NodeConfig)
func NewWithDeployNode(node *domain.WorkflowNode, certdata struct {
Certificate string
PrivateKey string
},
) (Deployer, error) {
if node.Type != domain.WorkflowNodeTypeApply {
return nil, fmt.Errorf("node type is not deploy")
}
accessRepo := repository.NewAccessRepository()
access, err := accessRepo.GetById(context.Background(), node.GetConfigString("providerAccessId"))
if err != nil {
return nil, fmt.Errorf("access record not found: %w", err)
}
deployer, logger, err := createDeployer(domain.DeployProviderType(node.GetConfigString("provider")), access.Config, node.Config)
if err != nil {
return nil, err
}
return &proxyDeployer{
option: option,
logger: logger,
deployer: deployer,
logger: logger,
deployer: deployer,
deployCertificate: certdata.Certificate,
deployPrivateKey: certdata.PrivateKey,
}, nil
}
// TODO: 暂时使用代理模式以兼容之前版本代码,后续重新实现此处逻辑
type proxyDeployer struct {
option *DeployerOption
logger logger.Logger
deployer deployer.Deployer
logger logger.Logger
deployer deployer.Deployer
deployCertificate string
deployPrivateKey string
}
func (d *proxyDeployer) Deploy(ctx context.Context) error {
_, err := d.deployer.Deploy(ctx, d.option.Certificate.Certificate, d.option.Certificate.PrivateKey)
_, err := d.deployer.Deploy(ctx, d.deployCertificate, d.deployPrivateKey)
return err
}