| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package sms
- import (
- "errors"
- )
- var (
- ErrSmsNoMoney = errors.New("sms no money")
- ErrSmsProviderReturnBadValue = errors.New("sms provider return bad value")
- ErrSmsProviderNotFound = errors.New("sms provider not found")
- providers map[string]ISms = make(map[string]ISms)
- )
- type ISms interface {
- Send(phone, msg string) error
- SendTpl(phone, tpl, params string) error
- // BatchSendTpl( phones []string, tpl, params []string) error
- GetBalance() (float64, error) // balance available
- GetAvailable() (int64, error) // how many sms times remain we can send
- Name() string // provider name
- }
- func Use(sms ...ISms) {
- for _, p := range sms {
- providers[p.Name()] = p
- }
- }
- func All() map[string]ISms {
- return providers
- }
- func Get(name string) (ISms, error) {
- sms, ok := providers[name]
- if ok {
- return sms, nil
- }
- return nil, ErrSmsProviderNotFound
- }
- func Clear() {
- providers = map[string]ISms{}
- }
|