package core import ( "errors" "strings" "github.com/TwiN/gatus/v5/alerting/alert" ) var ( // ErrEndpointWithNoName is the error with which Gatus will panic if an endpoint is configured with no name ErrEndpointWithNoName = errors.New("you must specify a name for each endpoint") // ErrEndpointWithInvalidNameOrGroup is the error with which Gatus will panic if an endpoint has an invalid character where it shouldn't ErrEndpointWithInvalidNameOrGroup = errors.New("endpoint name and group must not have \" or \\") ) // validateEndpointNameGroupAndAlerts validates the name, group and alerts of an endpoint func validateEndpointNameGroupAndAlerts(name, group string, alerts []*alert.Alert) error { if len(name) == 0 { return ErrEndpointWithNoName } if strings.ContainsAny(name, "\"\\") || strings.ContainsAny(group, "\"\\") { return ErrEndpointWithInvalidNameOrGroup } for _, endpointAlert := range alerts { if err := endpointAlert.ValidateAndSetDefaults(); err != nil { return err } } return nil }