diff --git a/main.go b/main.go index b92a433..600b68a 100644 --- a/main.go +++ b/main.go @@ -11,16 +11,11 @@ import ( log "github.com/sirupsen/logrus" ) -func main() { +func init() { initializeTheEnvironment() +} - err := loginAndGetContract() - if err != nil { - log.Error(err) - log.Error("Error while Login and get Contract") - return - } - +func main() { startQueryStatusData() } @@ -46,7 +41,6 @@ func initializeTheEnvironment() { httputils.InitHttpClient() mqtt.InitMqttConnection() setLogSetup() - } func setLogSetup() { @@ -73,14 +67,24 @@ func loginAndGetContract() error { func getStatusData() bool { + err := loginAndGetContract() + if err != nil { + log.Error(err) + log.Error("Error while Login and get Contract") + return false + } + statusData, err := data.GetDeviceData() if err != nil || len(statusData.Status) == 0 { log.Error(err) log.Error("Error while get DeviceData") + panasonic.Logout() return false } mqtt.PublishStatus(statusData) log.Trace(statusData) + panasonic.Logout() + return true } diff --git a/src/login/login.go b/src/auth/auth.go similarity index 84% rename from src/login/login.go rename to src/auth/auth.go index dced9d5..5cd7301 100644 --- a/src/login/login.go +++ b/src/auth/auth.go @@ -1,4 +1,4 @@ -package login +package auth import ( "encoding/json" @@ -22,7 +22,7 @@ type ResponseStruct struct { ErrorCode int `json:"errorCode"` } -func GetLogin() error { +func Login() error { var loginResponseStruct ResponseStruct loginURL := config.GetConfig().AquareaSmartCloudURL + "/remote/v1/api/auth/login" @@ -91,3 +91,19 @@ func getBodyFromResponse(err error, response *http.Response) ([]byte, error) { func isPanasonicResponseHasError(loginStruct ResponseStruct) bool { return loginStruct.ErrorCode != 0 } + +func Logout() error { + logoutURL := config.GetConfig().AquareaSmartCloudURL + "/remote/v1/api/auth/logout" + + response, err := httputils.PostREQ(logoutURL) + if err != nil { + return err + } + + if response.StatusCode != http.StatusOK { + log.Error("HTTP call result code is:", response.StatusCode) + return err + } + + return nil +} diff --git a/src/panasonic/panasonic.go b/src/panasonic/panasonic.go index 1f1bbc4..4f4dba4 100644 --- a/src/panasonic/panasonic.go +++ b/src/panasonic/panasonic.go @@ -1,14 +1,22 @@ package panasonic import ( + auth "github.com/ronhks/panasonic-aquarea-smart-cloud-mqtt/src/auth" conf "github.com/ronhks/panasonic-aquarea-smart-cloud-mqtt/src/config" httputils "github.com/ronhks/panasonic-aquarea-smart-cloud-mqtt/src/http" - "github.com/ronhks/panasonic-aquarea-smart-cloud-mqtt/src/login" log "github.com/sirupsen/logrus" ) func Login() { - err := login.GetLogin() + err := auth.Login() + if err != nil { + log.Error(err) + return + } +} + +func Logout() { + err := auth.Logout() if err != nil { log.Error(err) return