Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package sms
import (
"net/http"
"net/url"
"sync"
"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/configmdl"
"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/constantmdl"
"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/errormdl"
"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/loggermdl"
)
type SMSConfig struct {
SMSGatewayUrl string
UserName string
Password string
SenderID string
CDMAHeader string
}
var once sync.Once
var config = SMSConfig{}
var smsInitError error
// Init - initializes toml file configurations
func Init(tomlFilepath string) error {
once.Do(func() {
_, err := configmdl.InitConfig(tomlFilepath, &config)
if errormdl.CheckErr(err) != nil {
loggermdl.LogError(err)
smsInitError = err
return
}
})
return smsInitError
}
// SendSMS -
func SendSMS(message string, mobileNumber string) error {
// define url
var Url *url.URL
// add url
Url, parseErr := url.Parse(config.SMSGatewayUrl)
if errormdl.CheckErr(parseErr) != nil {
loggermdl.LogError("error occured while connect with SMS gateway : ", errormdl.CheckErr(parseErr))
return parseErr
}
// add url parameters
urlParameters := url.Values{}
urlParameters.Add("username", config.UserName)
urlParameters.Add("password", config.Password)
if len(mobileNumber) == 0 {
loggermdl.LogError("error occured while calling SendSMS : ", errormdl.Wrap("Mobile number empty"))
return errormdl.Wrap("Mobile number empty")
}
urlParameters.Add("to", constantmdl.COUNTRYCODE+mobileNumber)
urlParameters.Add("from", config.CDMAHeader)
urlParameters.Add("text", message)
// encode url
Url.RawQuery = urlParameters.Encode()
// send get request
response, getErr := http.Get(Url.String())
if errormdl.CheckErr1(getErr) != nil {
loggermdl.LogError("error occured while calling SendSMS : ", errormdl.CheckErr1(getErr))
if response != nil {
response.Body.Close()
}
return getErr
}
response.Body.Close()
return nil
}