| @@ 48-62 (lines=15) @@ | ||
| 45 | throw new UnexpectedValueException('Array expected'); |
|
| 46 | } |
|
| 47 | ||
| 48 | foreach ($this->expectedHeadersSchemas as $name => $expectedSchema) { |
|
| 49 | if (isset($actualHeaders[$name])) { |
|
| 50 | $errors = $this->validator->validate( |
|
| 51 | $this->normalizeHeaderValue($actualHeaders[$name], $expectedSchema->type), |
|
| 52 | $expectedSchema, |
|
| 53 | new JsonPointer("#/{$name}") |
|
| 54 | ); |
|
| 55 | $this->errors = array_merge($this->errors, $errors); |
|
| 56 | } elseif (isset($expectedSchema->required) && $expectedSchema->required) { |
|
| 57 | $this->errors[] = [ |
|
| 58 | 'property' => $name, |
|
| 59 | 'message' => "Missing required header ({$name})", |
|
| 60 | ]; |
|
| 61 | } |
|
| 62 | } |
|
| 63 | ||
| 64 | return empty($this->errors); |
|
| 65 | } |
|
| @@ 110-127 (lines=18) @@ | ||
| 107 | parse_str($uri->getQuery(), $actualQueryParams); |
|
| 108 | ||
| 109 | // TODO: Assert query params |
|
| 110 | foreach ($this->queryParameters as $name => $queryParamSchema) { |
|
| 111 | if (isset($actualQueryParams[$name])) { |
|
| 112 | $actualQueryParam = $actualQueryParams[$name]; |
|
| 113 | ||
| 114 | // TODO: Consider to disallow non-string params in query, that make no sense |
|
| 115 | $actualQueryParam = $this->normalizeNumericString($actualQueryParam); |
|
| 116 | ||
| 117 | $this->errors = array_merge( |
|
| 118 | $this->errors, |
|
| 119 | $this->validator->validate($actualQueryParam, $queryParamSchema, new JsonPointer('#/query')) |
|
| 120 | ); |
|
| 121 | } elseif (isset($queryParamSchema->required) && $queryParamSchema->required) { |
|
| 122 | $this->errors[] = [ |
|
| 123 | 'property' => 'query', |
|
| 124 | 'message' => "Missing required query param ({$name})", |
|
| 125 | ]; |
|
| 126 | } |
|
| 127 | } |
|
| 128 | ||
| 129 | return empty($this->errors); |
|
| 130 | } |
|