Skip to content

Commit

Permalink
use expaneded Analyzer for some validators
Browse files Browse the repository at this point in the history
  • Loading branch information
koron committed May 19, 2022
1 parent c5b9514 commit cfc09bf
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 5 deletions.
2 changes: 1 addition & 1 deletion default_validator.go
Expand Up @@ -92,7 +92,7 @@ func (d *defaultValidator) validateDefaultValueValidAgainstSchema() *Result {
res := new(Result)
s := d.SpecValidator

for method, pathItem := range s.analyzer.Operations() {
for method, pathItem := range s.expandedAnalyzer().Operations() {
for path, op := range pathItem {
// parameters
for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) {
Expand Down
2 changes: 1 addition & 1 deletion example_validator.go
Expand Up @@ -68,7 +68,7 @@ func (ex *exampleValidator) validateExampleValueValidAgainstSchema() *Result {
res := new(Result)
s := ex.SpecValidator

for method, pathItem := range s.analyzer.Operations() {
for method, pathItem := range s.expandedAnalyzer().Operations() {
for path, op := range pathItem {
// parameters
for _, param := range paramHelp.safeExpandedParamsFor(path, method, op.ID, res, s) {
Expand Down
4 changes: 2 additions & 2 deletions helpers.go
Expand Up @@ -210,7 +210,7 @@ type paramHelper struct {
}

func (h *paramHelper) safeExpandedParamsFor(path, method, operationID string, res *Result, s *SpecValidator) (params []spec.Parameter) {
operation, ok := s.analyzer.OperationFor(method, path)
operation, ok := s.expandedAnalyzer().OperationFor(method, path)
if ok {
// expand parameters first if necessary
resolvedParams := []spec.Parameter{}
Expand All @@ -224,7 +224,7 @@ func (h *paramHelper) safeExpandedParamsFor(path, method, operationID string, re
// remove params with invalid expansion from Slice
operation.Parameters = resolvedParams

for _, ppr := range s.analyzer.SafeParamsFor(method, path,
for _, ppr := range s.expandedAnalyzer().SafeParamsFor(method, path,
func(p spec.Parameter, err error) bool {
// since params have already been expanded, there are few causes for error
res.AddErrors(someParametersBrokenMsg(path, method, operationID))
Expand Down
11 changes: 10 additions & 1 deletion spec.go
Expand Up @@ -624,7 +624,7 @@ func (s *SpecValidator) validateParameters() *Result {
// - path param must be required
res := new(Result)
rexGarbledPathSegment := mustCompileRegexp(`.*[{}\s]+.*`)
for method, pi := range s.analyzer.Operations() {
for method, pi := range s.expandedAnalyzer().Operations() {
methodPaths := make(map[string]map[string]string)
for path, op := range pi {
pathToAdd := pathHelp.stripParametersInPath(path)
Expand Down Expand Up @@ -793,3 +793,12 @@ func (s *SpecValidator) checkUniqueParams(path, method string, op *spec.Operatio
func (s *SpecValidator) SetContinueOnErrors(c bool) {
s.Options.ContinueOnErrors = c
}

// expandedAnalyzer returns expanded.Analyzer when it is available.
// otherwise just analyzer.
func (s *SpecValidator) expandedAnalyzer() *analysis.Spec {
if s.expanded != nil && s.expanded.Analyzer != nil {
return s.expanded.Analyzer
}
return s.analyzer
}

0 comments on commit cfc09bf

Please sign in to comment.