Skip to content

Commit

Permalink
fix: Populating trigger description when creating trigger (#1144)
Browse files Browse the repository at this point in the history
  • Loading branch information
Tetrergeru authored Feb 19, 2025
1 parent 33b181f commit 0143b56
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 14 deletions.
15 changes: 8 additions & 7 deletions api/dto/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -510,20 +510,21 @@ func (*Trigger) Render(http.ResponseWriter, *http.Request) error {
return nil
}

func (trigger *Trigger) PopulatedDescription(events moira.NotificationEvents) error {
// PopulatedDescription returns new trigger description after template populating.
func (trigger *Trigger) PopulatedDescription(events moira.NotificationEvents) (*string, error) {
var emptyString = ""

if trigger.Desc == nil {
return nil
return &emptyString, nil
}

triggerDescriptionPopulater := templating.NewTriggerDescriptionPopulater(trigger.Name, events.ToTemplateEvents())
description, err := triggerDescriptionPopulater.Populate(*trigger.Desc)
newDescription, err := triggerDescriptionPopulater.Populate(*trigger.Desc)
if err != nil {
return fmt.Errorf("you have an error in your Go template: %v", err)
return &emptyString, fmt.Errorf("you have an error in your Go template: %v", err)
}

*trigger.Desc = description

return nil
return &newDescription, nil
}

type TriggerCheckResponse struct {
Expand Down
15 changes: 9 additions & 6 deletions api/handler/trigger.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ func getTrigger(writer http.ResponseWriter, request *http.Request) {
return
}

if err := checkingTemplateFilling(request, *trigger); err != nil {
if err := fillTemplate(request, trigger); err != nil {
middleware.GetLoggerEntry(request).Warning().
Error(err.Err).
Msg("Failed to check template")
Expand All @@ -175,7 +175,7 @@ func getTrigger(writer http.ResponseWriter, request *http.Request) {
}
}

func checkingTemplateFilling(request *http.Request, trigger dto.Trigger) *api.ErrorResponse {
func fillTemplate(request *http.Request, trigger *dto.Trigger) *api.ErrorResponse {
if !middleware.GetPopulated(request) {
return nil
}
Expand All @@ -190,15 +190,18 @@ func checkingTemplateFilling(request *http.Request, trigger dto.Trigger) *api.Er
allStates map[string]struct{}
)

eventsList, err := controller.GetTriggerEvents(database, trigger.ID, page, size, eventDefaultFrom, eventDefaultTo, allMetricRegexp, allStates)
if err != nil {
return err
eventsList, errResponse := controller.GetTriggerEvents(database, trigger.ID, page, size, eventDefaultFrom, eventDefaultTo, allMetricRegexp, allStates)
if errResponse != nil {
return errResponse
}

if err := trigger.PopulatedDescription(eventsList.List); err != nil {
newDescription, err := trigger.PopulatedDescription(eventsList.List)
if err != nil {
return api.ErrorRender(err)
}

trigger.Desc = newDescription

return nil
}

Expand Down
2 changes: 1 addition & 1 deletion api/handler/triggers.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ func createTrigger(writer http.ResponseWriter, request *http.Request) {
}

if trigger.Desc != nil {
err := trigger.PopulatedDescription(moira.NotificationEvents{{}})
_, err := trigger.PopulatedDescription(moira.NotificationEvents{{}})
if err != nil {
render.Render(writer, request, api.ErrorRender(err)) //nolint
return
Expand Down

0 comments on commit 0143b56

Please # to comment.