mirror of
https://github.com/TwiN/gatus.git
synced 2024-12-14 11:58:04 +00:00
9d151fcdb4
* refactor: Partially break core package into dns, result and ssh packages * refactor: Move core package to config/endpoint * refactor: Fix warning about overlapping imported package name with endpoint variable * refactor: Rename EndpointStatus to Status * refactor: Merge result pkg back into endpoint pkg, because it makes more sense * refactor: Rename parameter r to result in Condition.evaluate * refactor: Rename parameter r to result * refactor: Revert accidental change to endpoint.TypeDNS * refactor: Rename parameter r to result * refactor: Merge util package into endpoint package * refactor: Rename parameter r to result
32 lines
1 KiB
Go
32 lines
1 KiB
Go
package endpoint
|
|
|
|
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
|
|
}
|