add beginning of CLI app and some backend fixes.

This commit is contained in:
2021-09-24 16:58:24 +02:00
parent 7a6ee3f87b
commit 06fa73b916
13 changed files with 632 additions and 11 deletions
+18
View File
@@ -46,6 +46,8 @@ var loc, _ = time.LoadLocation("Europe/Oslo")
var ctx = context.Background()
func handleEvent(event models.Event) (responses []models.Event) {
var deadHandlers []models.EventHandler
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
@@ -102,6 +104,10 @@ func handleEvent(event models.Event) (responses []models.Event) {
continue
}
if handler.OneShot {
deadHandlers = append(deadHandlers, handler)
}
if handler.Priority > highestPriority {
highestPriority = handler.Priority
prioritizedEvent = handler.Actions.FireEvent
@@ -159,6 +165,18 @@ func handleEvent(event models.Event) (responses []models.Event) {
wg.Done()
}(device)
}
for _, handler := range deadHandlers {
wg.Add(1)
go func(handler models.EventHandler) {
err := config.EventHandlerRepository().Delete(context.Background(), &handler)
if err != nil {
log.Println("Failed to delete spent one-shot event handler:", err)
}
wg.Done()
}(handler)
}
wg.Wait()