package sms import "github.com/perfect-panel/server/internal/types" type Platform int const ( AlibabaCloud Platform = iota Smsbao Abosend Twilio unsupported ) var platformNames = map[string]Platform{ "AlibabaCloud": AlibabaCloud, "smsbao": Smsbao, "abosend": Abosend, "twilio": Twilio, "unsupported": unsupported, } func (p Platform) String() string { for k, v := range platformNames { if v == p { return k } } return "unsupported" } func parsePlatform(s string) Platform { if p, ok := platformNames[s]; ok { return p } return unsupported } func GetSupportedPlatforms() []types.PlatformInfo { return []types.PlatformInfo{ { Platform: AlibabaCloud.String(), PlatformUrl: "https://www.alibabacloud.com", PlatformFieldDescription: map[string]string{ "access": "AccessKeyId", "secret": "AccessKeySecret", "template_code": "TemplateCode", "sign_name": "SignName", "endpoint": "Endpoint", }, }, { Platform: Smsbao.String(), PlatformUrl: "https://www.smsbao.com", PlatformFieldDescription: map[string]string{ "access": "Username", "secret": "Password", "code_variable": "{{.code}}", "template": "Your verification code is: {{.code}}", }, }, { Platform: Abosend.String(), PlatformUrl: "https://www.abosend.com", PlatformFieldDescription: map[string]string{ "access": "OrgCode", "secret": "MD5Key", "code_variable": "{{.code}}", "template": "Your verification code is: {{.code}}", "api_domain": "https://smsapi.abosend.com", }, }, { Platform: Twilio.String(), PlatformUrl: "https://www.twilio.com", PlatformFieldDescription: map[string]string{ "access": "AccessSID", "secret": "AuthToken", "phone_number": "Sending phone number", "code_variable": "{{.code}}", "template": "Your verification code is: {{.code}}", }, }, } }