Initial commit (code only without large binaries)
This commit is contained in:
105
EdgeCommon/pkg/userconfigs/user_sender_config_plus.go
Normal file
105
EdgeCommon/pkg/userconfigs/user_sender_config_plus.go
Normal file
@@ -0,0 +1,105 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
//go:build plus
|
||||
|
||||
package userconfigs
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
)
|
||||
|
||||
type EmailSenderConfig struct {
|
||||
IsOn bool `yaml:"isOn" json:"isOn"`
|
||||
SMTPHost string `yaml:"smtpHost" json:"smtpHost"`
|
||||
SMTPPort int32 `yaml:"smtpPort" json:"smtpPort"`
|
||||
Protocol string `yaml:"protocol" json:"protocol"` // tcp|tls
|
||||
Username string `yaml:"username" json:"username"`
|
||||
Password string `yaml:"password" json:"password"`
|
||||
FromEmail string `yaml:"fromEmail" json:"fromEmail"` // 发件人Email
|
||||
FromName string `yaml:"fromName" json:"fromName"` // 发件人名称
|
||||
}
|
||||
|
||||
func NewEmailSenderConfig() *EmailSenderConfig {
|
||||
return &EmailSenderConfig{
|
||||
IsOn: true,
|
||||
}
|
||||
}
|
||||
|
||||
type SMSSenderType = string
|
||||
|
||||
const (
|
||||
SMSSenderWebHook = "webHook"
|
||||
SMSSenderAliyunSMS = "aliyunSMS"
|
||||
SMSSenderTencentSMS = "tencentSMS"
|
||||
)
|
||||
|
||||
type SMSSenderConfig struct {
|
||||
IsOn bool `yaml:"isOn" json:"isOn"`
|
||||
Type SMSSenderType `yaml:"type" json:"type"`
|
||||
WebHookParams *SMSSenderWebHookParams `yaml:"webHookParams" json:"webHookParams"`
|
||||
AliyunSMSParams *SMSSenderAliyunSMSParams `yaml:"aliyunSMSParams" json:"aliyunSMSParams"`
|
||||
TencentSMSParams *SMSSenderTencentSMSParams `yaml:"tencentSMSParams" json:"tencentSMSParams"`
|
||||
}
|
||||
|
||||
func NewSMSSenderConfig() *SMSSenderConfig {
|
||||
return &SMSSenderConfig{
|
||||
IsOn: true,
|
||||
Type: SMSSenderWebHook,
|
||||
WebHookParams: &SMSSenderWebHookParams{
|
||||
URL: "",
|
||||
Method: "GET",
|
||||
},
|
||||
AliyunSMSParams: &SMSSenderAliyunSMSParams{
|
||||
CodeVarName: "code",
|
||||
},
|
||||
TencentSMSParams: &SMSSenderTencentSMSParams{},
|
||||
}
|
||||
}
|
||||
|
||||
func (this *SMSSenderConfig) ParamsJSON() ([]byte, error) {
|
||||
var params any
|
||||
switch this.Type {
|
||||
case SMSSenderWebHook:
|
||||
params = this.WebHookParams
|
||||
case SMSSenderAliyunSMS:
|
||||
params = this.AliyunSMSParams
|
||||
case SMSSenderTencentSMS:
|
||||
params = this.TencentSMSParams
|
||||
default:
|
||||
return nil, errors.New("not supported type '" + this.Type + "'")
|
||||
}
|
||||
return json.Marshal(params)
|
||||
}
|
||||
|
||||
type SMSSenderWebHookParams struct {
|
||||
URL string `yaml:"url" json:"url"` // (http|https)://...
|
||||
Method string `yaml:"method" json:"method"` // GET|POST
|
||||
}
|
||||
|
||||
type SMSSenderAliyunSMSParams struct {
|
||||
Sign string `yaml:"sign" json:"sign"` // 签名名称
|
||||
TemplateCode string `yaml:"templateCode" json:"templateCode"` // 模板CODE
|
||||
CodeVarName string `yaml:"codeVarName" json:"codeVarName"` // 验证码变量
|
||||
AccessKeyId string `yaml:"accessKeyId" json:"accessKeyId"` // AccessKeyId
|
||||
AccessKeySecret string `yaml:"accessKeySecret" json:"accessKeySecret"` // AccessKeySecret
|
||||
}
|
||||
|
||||
type SMSSenderTencentSMSParams struct {
|
||||
SDKAppId string `yaml:"sdkAppId" json:"sdkAppId"` // 应用ID
|
||||
Sign string `yaml:"sign" json:"sign"` // 签名名称
|
||||
TemplateId string `yaml:"templateId" json:"templateId"` // 模板ID
|
||||
AccessKeyId string `yaml:"accessKeyId" json:"accessKeyId"` // AccessKeyId
|
||||
AccessKeySecret string `yaml:"accessKeySecret" json:"accessKeySecret"` // AccessKeySecret
|
||||
}
|
||||
|
||||
type UserSenderConfig struct {
|
||||
VerifyEmail *EmailSenderConfig `yaml:"verifyEmail" json:"verifyEmail"` // 验证邮件
|
||||
NotifyEmail *EmailSenderConfig `yaml:"notifyEmail" json:"notifyEmail"` // 通知邮件
|
||||
|
||||
VerifySMS *SMSSenderConfig `yaml:"verifySMS" json:"verifySMS"` // 验证短信
|
||||
NotifySMS *SMSSenderConfig `yaml:"notifySMS" json:"notifySMS"` // 通知短信
|
||||
}
|
||||
|
||||
func DefaultUserSenderConfig() *UserSenderConfig {
|
||||
return &UserSenderConfig{}
|
||||
}
|
||||
Reference in New Issue
Block a user