geekai/api/service/sms/sms_service_manager.go

40 lines
700 B
Go

package sms
import (
"chatplus/core/types"
"strings"
)
type SmsServiceManager struct {
handler SmsService
}
const Ali = "Ali"
const SmsBao = "SmsBao"
func NewSendServiceManager(config *types.AppConfig) (*SmsServiceManager, error) {
active := SmsBao
if config.OSS.Active != "" {
active = strings.ToUpper(config.SMS.Active)
}
var handler SmsService
switch active {
case Ali:
client, err := NewAliYunSmsService(config)
if err != nil {
return nil, err
}
handler = client
break
case SmsBao:
handler = NewSmsBaoSmsService(config)
break
}
return &SmsServiceManager{handler: handler}, nil
}
func (m *SmsServiceManager) GetUploadHandler() SmsService {
return m.handler
}