package sms import ( "context" "fmt" "hotgo/internal/consts" "hotgo/internal/library/sms/aliyun" "hotgo/internal/library/sms/tencent" "hotgo/internal/model" "hotgo/internal/model/input/sysin" ) // Drive 短信驱动 type Drive interface { SendCode(ctx context.Context, in sysin.SendCodeInp, config *model.SmsConfig) (err error) } func New(name ...string) Drive { var ( instanceName = consts.SmsDriveAliYun drive Drive ) if len(name) > 0 && name[0] != "" { instanceName = name[0] } switch instanceName { case consts.SmsDriveAliYun: drive = &aliyun.Handle case consts.SmsDriveTencent: drive = &tencent.Handle default: panic(fmt.Sprintf("暂不支持短信驱动:%v", instanceName)) } return drive }