Add check android and ios conf.
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
parent
17b9dc6ae8
commit
de78a189fd
31
gorush.go
31
gorush.go
|
@ -36,44 +36,25 @@ func main() {
|
|||
}
|
||||
}
|
||||
|
||||
if !gopush.PushConf.Ios.Enabled && !gopush.PushConf.Android.Enabled {
|
||||
log.Printf("Note: Please enable iOS or Android config in yaml config")
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if gopush.PushConf.Ios.Enabled {
|
||||
|
||||
if *certificateKeyPath != "" {
|
||||
gopush.PushConf.Ios.PemKeyPath = *certificateKeyPath
|
||||
}
|
||||
|
||||
if gopush.PushConf.Ios.PemKeyPath == "" {
|
||||
log.Println("iOS certificate path not define")
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// check andorid api key exist
|
||||
if gopush.PushConf.Android.Enabled {
|
||||
|
||||
if *apiKey != "" {
|
||||
gopush.PushConf.Android.ApiKey = *apiKey
|
||||
}
|
||||
|
||||
if gopush.PushConf.Android.ApiKey == "" {
|
||||
log.Println("Android API Key not define")
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// overwrite server port
|
||||
if *port != "" {
|
||||
gopush.PushConf.Core.Port = *port
|
||||
}
|
||||
|
||||
if err = gopush.CheckPushConf(); err != nil {
|
||||
log.Printf("Check Conf Error: '%v'", err)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
gopush.InitAPNSClient()
|
||||
gopush.RunHTTPServer()
|
||||
}
|
||||
|
|
|
@ -55,8 +55,8 @@ func BuildDefaultPushConf() ConfYaml {
|
|||
conf.Api.StatGoUri = "/api/status"
|
||||
|
||||
// Android
|
||||
conf.Android.ApiKey = ""
|
||||
conf.Android.Enabled = false
|
||||
conf.Android.ApiKey = ""
|
||||
|
||||
// iOS
|
||||
conf.Ios.Enabled = false
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"github.com/sideshow/apns2/certificate"
|
||||
"github.com/sideshow/apns2/payload"
|
||||
"log"
|
||||
"errors"
|
||||
)
|
||||
|
||||
type ExtendJSON struct {
|
||||
|
@ -71,6 +72,26 @@ type RequestPushNotification struct {
|
|||
IDs []uint64 `json:"seq_id,omitempty"`
|
||||
}
|
||||
|
||||
func CheckPushConf() error {
|
||||
if !PushConf.Ios.Enabled && !PushConf.Android.Enabled {
|
||||
return errors.New("Please enable iOS or Android config in yaml config")
|
||||
}
|
||||
|
||||
if PushConf.Ios.Enabled {
|
||||
if PushConf.Ios.PemKeyPath == "" {
|
||||
return errors.New("Missing iOS certificate path")
|
||||
}
|
||||
}
|
||||
|
||||
if PushConf.Android.Enabled {
|
||||
if PushConf.Android.ApiKey == "" {
|
||||
return errors.New("Missing Android API Key")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func InitAPNSClient() error {
|
||||
if PushConf.Ios.Enabled {
|
||||
var err error
|
||||
|
|
|
@ -9,6 +9,53 @@ import (
|
|||
"testing"
|
||||
)
|
||||
|
||||
func TestDisabledAndroidIosConf(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, "Please enable iOS or Android config in yaml config", err.Error())
|
||||
}
|
||||
|
||||
func TestMissingIOSCertificate(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
PushConf.Ios.Enabled = true
|
||||
PushConf.Ios.PemKeyPath = ""
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, "Missing iOS certificate path", err.Error())
|
||||
}
|
||||
|
||||
func TestMissingAndroidAPIKey(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
PushConf.Android.Enabled = true
|
||||
PushConf.Android.ApiKey = ""
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, "Missing Android API Key", err.Error())
|
||||
}
|
||||
|
||||
func TestCorrectConf(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
PushConf.Android.Enabled = true
|
||||
PushConf.Android.ApiKey = "xxxxx"
|
||||
|
||||
PushConf.Ios.Enabled = true
|
||||
PushConf.Ios.PemKeyPath = "xxxxx"
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestIOSNotificationStructure(t *testing.T) {
|
||||
var dat map[string]interface{}
|
||||
|
||||
|
|
Loading…
Reference in New Issue