| @@ 43-57 (lines=15) @@ | ||
| 40 |             throw new UnexpectedValueException('Array expected'); | |
| 41 | } | |
| 42 | ||
| 43 |         foreach ($this->expectedHeadersSchemas as $name => $expectedSchema) { | |
| 44 |             if (isset($actualHeaders[$name])) { | |
| 45 | $errors = $this->validator->validate( | |
| 46 | $this->normalizeHeaderValue($actualHeaders[$name], $expectedSchema->type), | |
| 47 | $expectedSchema, | |
| 48 |                     new JsonPointer("#/{$name}") | |
| 49 | ); | |
| 50 | $this->errors = array_merge($this->errors, $errors); | |
| 51 |             } elseif (isset($expectedSchema->required) && $expectedSchema->required) { | |
| 52 | $this->errors[] = [ | |
| 53 | 'property' => $name, | |
| 54 |                     'message' => "Missing required header ({$name})", | |
| 55 | ]; | |
| 56 | } | |
| 57 | } | |
| 58 | ||
| 59 | return empty($this->errors); | |
| 60 | } | |
| @@ 128-145 (lines=18) @@ | ||
| 125 | parse_str($uri->getQuery(), $actualQueryParams); | |
| 126 | ||
| 127 | // TODO: Assert query params | |
| 128 |         foreach ($this->queryParameters as $name => $queryParamSchema) { | |
| 129 |             if (isset($actualQueryParams[$name])) { | |
| 130 | $actualQueryParam = $actualQueryParams[$name]; | |
| 131 | ||
| 132 | // TODO: Consider to disallow non-string params in query, that make no sense | |
| 133 | $actualQueryParam = $this->normalizeNumericString($actualQueryParam); | |
| 134 | ||
| 135 | $this->errors = array_merge( | |
| 136 | $this->errors, | |
| 137 |                     $this->validator->validate($actualQueryParam, $queryParamSchema, new JsonPointer('#/query')) | |
| 138 | ); | |
| 139 |             } elseif (isset($queryParamSchema->required) && $queryParamSchema->required) { | |
| 140 | $this->errors[] = [ | |
| 141 | 'property' => 'query', | |
| 142 |                     'message' => "Missing required query param ({$name})", | |
| 143 | ]; | |
| 144 | } | |
| 145 | } | |
| 146 | ||
| 147 | return empty($this->errors); | |
| 148 | } | |