Files
smsx/interfaces/interfaces.go
T
2024-11-15 19:01:25 +08:00

61 lines
1.9 KiB
Go

package interfaces
import (
"context"
"errors"
"code.yun.ink/pkg/smsx/entity"
"github.com/yuninks/loggerx"
)
type Smsx interface {
InitSmsx(ctx context.Context, params consts.SmsConfigData,logger loggerx.LoggerInterface) (Smsx, error)
// Send 发送短信
// templateId: 短信模板ID
// phone: 手机号(格式:+86xxx)
// params: 模板参数
Send(ctx context.Context, templateId string, phone string, params []SmsSendParam) error
// GetTemp 获取所有短信模板
GetTemp(ctx context.Context) ([]TemplateInfo, error)
// TempDel 删除短信模板
TempDel(ctx context.Context, tempId string) error
}
type SmsSendParam struct {
Field string `json:"field"` // 字段
Value string `json:"value"` // 值
}
type TemplateInfo struct {
TempId string `json:"temp_id"` // 模板ID
TempName string `json:"temp_name"` // 模板名称
TempType consts.SmsTemplateType `json:"temp_type"` // 模板类型
TempRange consts.SmsTemplateRange `json:"temp_range"` // 作用范围
Content string `json:"content"` // 内容
Status consts.SmsTemplateStatus `json:"status"` // 状态 (1.通过审核 2.审核中 3.未通过审核 4.取消审核)
Params []consts.SmsTemplateParam `json:"params"` // 模板参数
}
// 默认的实现
type DefaultSmsx struct{}
func (l *DefaultSmsx) InitSmsx(ctx context.Context, params consts.SmsConfigData,logger loggerx.LoggerInterface) (Smsx, error) {
return &DefaultSmsx{}, nil
}
func (l *DefaultSmsx) Send(ctx context.Context, templateId string, phone string, params []SmsSendParam) error {
return errors.New("not implemented")
}
// GetTemp 获取模板
func (l *DefaultSmsx) GetTemp(ctx context.Context) ([]TemplateInfo, error) {
return nil, errors.New("not implemented")
}
// TempDel 删除模板
func (l *DefaultSmsx) TempDel(ctx context.Context, tempId string) error {
return errors.New("not implemented")
}