From c0552d3e6a21111c043ecceb3553559eeef2b618 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Wed, 31 Jul 2019 16:54:18 +0200 Subject: [PATCH] Include only enabled triggers/scripts --- compose/internal/repository/trigger.go | 4 ++++ compose/internal/service/record.go | 11 ++++++++++- compose/types/trigger.go | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/compose/internal/repository/trigger.go b/compose/internal/repository/trigger.go index 4f84c71de..db851812f 100644 --- a/compose/internal/repository/trigger.go +++ b/compose/internal/repository/trigger.go @@ -93,6 +93,10 @@ func (r trigger) Find(filter types.TriggerFilter) (set types.TriggerSet, f types query = query.Where("name like ?", q) } + if f.EnabledOnly { + query = query.Where("enabled") + } + if f.Count, err = r.count(query); err != nil || f.Count == 0 { return } diff --git a/compose/internal/service/record.go b/compose/internal/service/record.go index 95e666295..b1bbe7f78 100644 --- a/compose/internal/service/record.go +++ b/compose/internal/service/record.go @@ -339,6 +339,9 @@ func (svc record) DeleteByID(namespaceID, recordID uint64) (err error) { return errors.Wrap(err, "unable to delete record") } +// loadCombo Loads everything we need for record manipulation +// +// Loads namespace, module, record and set of triggers. func (svc record) loadCombo(namespaceID, moduleID, recordID uint64) (ns *types.Namespace, m *types.Module, r *types.Record, tt types.TriggerSet, err error) { if namespaceID == 0 { err = ErrNamespaceRequired @@ -361,8 +364,14 @@ func (svc record) loadCombo(namespaceID, moduleID, recordID uint64) (ns *types.N } tt, _, err = svc.tRepo.Find(types.TriggerFilter{ + // Make sure we stay in the same namespace NamespaceID: ns.ID, - ModuleID: m.ID, + + // Triggered scripts are always module-bound + ModuleID: m.ID, + + // We are only interested in enabled scripts + EnabledOnly: true, }) return diff --git a/compose/types/trigger.go b/compose/types/trigger.go index ef01adf1e..2794c5163 100644 --- a/compose/types/trigger.go +++ b/compose/types/trigger.go @@ -38,6 +38,7 @@ type ( TriggerFilter struct { NamespaceID uint64 `json:"namespaceID,string"` Query string `json:"query"` + EnabledOnly bool `json:"-"` Page uint `json:"page"` PerPage uint `json:"perPage"` // Sort string `json:"sort"`