shogo/internal/shodan/alert/clear.go

51 lines
1016 B
Go
Raw Normal View History

package alert
import (
"context"
"fmt"
"strings"
2024-05-29 00:42:40 +00:00
"git.supernets.org/perp/shogo/internal/utils"
)
// Clear all alerts
func (a *Alert) Clear() {
// Get results
results, err := utils.Client.GetAlerts(context.Background())
if err != nil {
a.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error())
return
}
// Store lines
var lines string
// Add lines
lines += utils.Title.Sprintln("Clearing alerts...")
for index := range results {
// Set results
result, err := utils.Client.DeleteAlert(context.Background(), results[index].ID)
if err != nil {
a.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error())
return
}
// Add lines
if result {
lines += fmt.Sprintf(
"%s: %s\n",
utils.Green("Deleted alert"),
utils.Blue(results[index].ID),
)
} else {
lines += fmt.Sprintf("%s: %s\n", utils.Red("Error"), "failed deleting an alert")
}
}
// Remove empty newline
lines = strings.TrimRight(lines, "\n")
// Send results
a.Results <- lines
}