mirror of
https://github.com/woodchen-ink/certimate.git
synced 2025-07-18 09:21:56 +08:00
refactor: abstractions
This commit is contained in:
parent
4752c49fed
commit
4ac3618f7e
9
internal/pkg/core/core.go
Normal file
9
internal/pkg/core/core.go
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log/slog"
|
||||||
|
)
|
||||||
|
|
||||||
|
type WithLogger interface {
|
||||||
|
SetLogger(logger *slog.Logger)
|
||||||
|
}
|
27
internal/pkg/core/notifier.go
Normal file
27
internal/pkg/core/notifier.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 表示定义消息通知器的抽象类型接口。
|
||||||
|
type Notifier interface {
|
||||||
|
WithLogger
|
||||||
|
|
||||||
|
// 发送通知。
|
||||||
|
//
|
||||||
|
// 入参:
|
||||||
|
// - ctx:上下文。
|
||||||
|
// - subject:通知主题。
|
||||||
|
// - message:通知内容。
|
||||||
|
//
|
||||||
|
// 出参:
|
||||||
|
// - res:发送结果。
|
||||||
|
// - err: 错误。
|
||||||
|
Notify(ctx context.Context, subject string, message string) (_res *NotifyResult, _err error)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表示通知发送结果的数据结构。
|
||||||
|
type NotifyResult struct {
|
||||||
|
ExtendedData map[string]any `json:"extendedData,omitempty"`
|
||||||
|
}
|
27
internal/pkg/core/ssl_deployer.go
Normal file
27
internal/pkg/core/ssl_deployer.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 表示定义 SSL 证书部署器的抽象类型接口。
|
||||||
|
type SSLDeployer interface {
|
||||||
|
WithLogger
|
||||||
|
|
||||||
|
// 部署证书。
|
||||||
|
//
|
||||||
|
// 入参:
|
||||||
|
// - ctx:上下文。
|
||||||
|
// - certPEM:证书 PEM 内容。
|
||||||
|
// - privkeyPEM:私钥 PEM 内容。
|
||||||
|
//
|
||||||
|
// 出参:
|
||||||
|
// - res:部署结果。
|
||||||
|
// - err: 错误。
|
||||||
|
Deploy(ctx context.Context, certPEM string, privkeyPEM string) (_res *SSLDeployResult, _err error)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表示 SSL 证书部署结果的数据结构。
|
||||||
|
type SSLDeployResult struct {
|
||||||
|
ExtendedData map[string]any `json:"extendedData,omitempty"`
|
||||||
|
}
|
30
internal/pkg/core/ssl_manager.go
Normal file
30
internal/pkg/core/ssl_manager.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 表示定义 SSL 证书管理器的抽象类型接口。
|
||||||
|
// 云服务商通常会提供 SSL 证书管理服务,可供用户集中管理证书。
|
||||||
|
type SSLManager interface {
|
||||||
|
WithLogger
|
||||||
|
|
||||||
|
// 上传证书。
|
||||||
|
//
|
||||||
|
// 入参:
|
||||||
|
// - ctx:上下文。
|
||||||
|
// - certPEM:证书 PEM 内容。
|
||||||
|
// - privkeyPEM:私钥 PEM 内容。
|
||||||
|
//
|
||||||
|
// 出参:
|
||||||
|
// - res:上传结果。
|
||||||
|
// - err: 错误。
|
||||||
|
Upload(ctx context.Context, certPEM string, privkeyPEM string) (_res *SSLUploadResult, _err error)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表示证书上传结果的数据结构,包含上传后的证书 ID、名称和其他数据。
|
||||||
|
type SSLUploadResult struct {
|
||||||
|
CertId string `json:"certId"`
|
||||||
|
CertName string `json:"certName,omitempty"`
|
||||||
|
ExtendedData map[string]any `json:"extendedData,omitempty"`
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user