Files
sub2api-cn-relay-manager/internal/access/validation.go

26 lines
673 B
Go

package access
import (
"fmt"
"strings"
)
func Validate(req ClosureRequest) error {
switch strings.TrimSpace(req.Mode) {
case ModeSubscription:
if len(req.Subscriptions) == 0 {
return fmt.Errorf("subscription access requires at least one subscription target")
}
case ModeSelfService:
if selfServiceProbeAPIKey(req) == "" {
return fmt.Errorf("self_service access requires probe api key")
}
default:
return fmt.Errorf("unsupported access mode %q", req.Mode)
}
if strings.TrimSpace(req.Mode) != ModeSubscription && selfServiceProbeAPIKey(req) == "" {
return fmt.Errorf("access probe api key is required to verify gateway closure")
}
return nil
}