调整SetOptions的方式
This commit is contained in:
+8
-6
@@ -34,18 +34,18 @@ func NewAliyun() *Aliyun {
|
||||
return aliyun
|
||||
}
|
||||
|
||||
func (l *Aliyun) SetOption(ctx context.Context, opt ...interfaces.Option) (interfaces.EmailInterface, error) {
|
||||
func (l *Aliyun) SetOption(ctx context.Context, opt ...interfaces.Option) error {
|
||||
for _, o := range opt {
|
||||
o(&l.Options)
|
||||
}
|
||||
|
||||
if l.Options.Aliyun == nil {
|
||||
return nil, fmt.Errorf("Aliyun configuration is required")
|
||||
return fmt.Errorf("Aliyun configuration is required")
|
||||
}
|
||||
|
||||
// 验证配置
|
||||
if err := l.validateConfig(); err != nil {
|
||||
return nil, fmt.Errorf("invalid Aliyun config: %w", err)
|
||||
return fmt.Errorf("invalid Aliyun config: %w", err)
|
||||
}
|
||||
|
||||
// 安全日志输出
|
||||
@@ -64,15 +64,17 @@ func (l *Aliyun) SetOption(ctx context.Context, opt ...interfaces.Option) (inter
|
||||
|
||||
client, err := dm20151123.NewClient(config)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create Aliyun client: %w", err)
|
||||
return fmt.Errorf("failed to create Aliyun client: %w", err)
|
||||
}
|
||||
|
||||
l.IsSet = true
|
||||
|
||||
l.client = client
|
||||
return l, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *Aliyun) Send(ctx context.Context, params interfaces.Message) error {
|
||||
if l.client == nil {
|
||||
if !l.IsSet {
|
||||
return fmt.Errorf("Aliyun client not initialized")
|
||||
}
|
||||
|
||||
|
||||
@@ -10,10 +10,10 @@ import (
|
||||
)
|
||||
|
||||
func TestSend(t *testing.T) {
|
||||
aliyun := aliyun.NewAliyun()
|
||||
ali := aliyun.NewAliyun()
|
||||
ctx := context.Background()
|
||||
|
||||
ali, err := aliyun.SetOption(ctx, interfaces.SetAliyun(&interfaces.EmialConfigDataAliyun{
|
||||
err := ali.SetOption(ctx, interfaces.SetAliyun(&interfaces.EmialConfigDataAliyun{
|
||||
AccessId: "LTAI5tEQ8L8fmDir8udD3CFr",
|
||||
AccessKey: "llg9M1U56s2SW5PuerlKPvTB1xYhn0",
|
||||
Endpoint: "dm.aliyuncs.com",
|
||||
|
||||
Reference in New Issue
Block a user