diff --git a/internal/edgeapps/edgeapps.go b/internal/edgeapps/edgeapps.go index b5d99a7..f4624ab 100644 --- a/internal/edgeapps/edgeapps.go +++ b/internal/edgeapps/edgeapps.go @@ -335,6 +335,32 @@ func DisableOnline(ID string) MaybeEdgeApp { } +func EnablePublicDashboard(InternetURL string) bool { + + envFilePath := utils.GetPath("apiPath") + myEdgeAppServiceEnvFilename + env, _ := godotenv.Unmarshal("INTERNET_URL=" + InternetURL) + _ = godotenv.Write(env, envFilePath) + + return true + +} + +func DisablePublicDashboard() bool { + envFilePath := utils.GetPath("apiPath") + myEdgeAppServiceEnvFilename + _, err := godotenv.Read(envFilePath) + if err != nil { + log.Println("myedge.app environment file for the dashboard / api not found. No need to delete.") + } else { + cmdArgs := []string{envFilePath} + utils.Exec(utils.GetPath("apiPath"), "rm", cmdArgs) + buildFrameworkContainers() + return true + } + + return false + +} + func buildFrameworkContainers() { cmdArgs := []string{utils.GetPath("wsPath") + "ws", "--build"} diff --git a/internal/tasks/tasks.go b/internal/tasks/tasks.go index 3d9adb1..378415f 100644 --- a/internal/tasks/tasks.go +++ b/internal/tasks/tasks.go @@ -60,6 +60,10 @@ type taskDisableOnlineArgs struct { ID string `json:"id"` } +type taskEnablePublicDashboardArgs struct { + InternetURL string `json:"internet_url` +} + // GetNextTask : Performs a MySQL query over the device's Edgebox API func GetNextTask() Task { @@ -206,6 +210,24 @@ func ExecuteTask(task Task) Task { task.Result = sql.NullString{String: taskResult, Valid: true} } + case "enable_public_dashboard": + + log.Println("Enabling online access to Dashboard...") + var args taskEnablePublicDashboardArgs + err := json.Unmarshal([]byte(task.Args.String), &args) + if err != nil { + log.Printf("Error reading arguments of enable_public_dashboard task: %s", err) + } else { + taskResult := taskEnablePublicDashboard(args) + task.Result = sql.NullString{String: taskResult, Valid: true} + } + + case "disable_public_dashboard": + + log.Println("Disabling online access to Dashboard...") + taskResult := taskDisablePublicDashboard() + task.Result = sql.NullString{String: taskResult, Valid: true} + } } @@ -225,7 +247,6 @@ func ExecuteTask(task Task) Task { if err != nil { log.Fatal(err.Error()) } - } else { _, err = statement.Exec(3, "Error", formatedDatetime, strconv.Itoa(task.ID)) // Execute SQL Statement with Error info if err != nil { @@ -274,7 +295,6 @@ func ExecuteSchedules(tick int) { if tick%30 == 0 { // Executing every 30 ticks log.Println(taskGetEdgeApps()) - } if tick%60 == 0 { @@ -390,6 +410,30 @@ func taskDisableOnline(args taskDisableOnlineArgs) string { } +func taskEnablePublicDashboard(args taskEnablePublicDashboardArgs) string { + + fmt.Println("Enabling taskEnablePublicDashboard") + result := edgeapps.EnablePublicDashboard(args.InternetURL) + if result { + return "{result: true}" + + } + + return "{result: false}" + +} + +func taskDisablePublicDashboard() string { + + fmt.Println("Executing taskDisablePublicDashboard") + result := edgeapps.DisablePublicDashboard() + if result { + return "{result: true}" + } + return "{result: false}" + +} + func taskSetReleaseVersion() string { fmt.Println("Executing taskSetReleaseVersion")