| @@ 19-55 (lines=37) @@ | ||
| 16 | /** |
|
| 17 | * @author John Kleijn <[email protected]> |
|
| 18 | */ |
|
| 19 | class OpenApiFactory implements StandardFactory |
|
| 20 | { |
|
| 21 | /** |
|
| 22 | * @var DefinitionValidator|null |
|
| 23 | */ |
|
| 24 | private $validator; |
|
| 25 | ||
| 26 | /** |
|
| 27 | * Repository constructor. |
|
| 28 | * |
|
| 29 | * @param DefinitionValidator|null $validator |
|
| 30 | */ |
|
| 31 | public function __construct(DefinitionValidator $validator = null) |
|
| 32 | { |
|
| 33 | $this->validator = $validator; |
|
| 34 | } |
|
| 35 | ||
| 36 | /** |
|
| 37 | * @param string $uri |
|
| 38 | * @param \stdClass $definition |
|
| 39 | * |
|
| 40 | * @return Description |
|
| 41 | */ |
|
| 42 | public function build(string $uri, \stdClass $definition): Description |
|
| 43 | { |
|
| 44 | $resolver = new RefResolver($definition, $uri); |
|
| 45 | ||
| 46 | /** @var \stdClass $definition */ |
|
| 47 | $description = new OpenApiDescription(new Document($uri, $definition = $resolver->resolve())); |
|
| 48 | ||
| 49 | if ($this->validator) { |
|
| 50 | $this->validator->validate($definition); |
|
| 51 | } |
|
| 52 | ||
| 53 | return $description; |
|
| 54 | } |
|
| 55 | } |
|
| 56 | ||
| @@ 19-55 (lines=37) @@ | ||
| 16 | /** |
|
| 17 | * @author John Kleijn <[email protected]> |
|
| 18 | */ |
|
| 19 | class RamlFactory implements StandardFactory |
|
| 20 | { |
|
| 21 | /** |
|
| 22 | * @var DefinitionValidator|null |
|
| 23 | */ |
|
| 24 | private $validator; |
|
| 25 | ||
| 26 | /** |
|
| 27 | * Repository constructor. |
|
| 28 | * |
|
| 29 | * @param DefinitionValidator|null $validator |
|
| 30 | */ |
|
| 31 | public function __construct(DefinitionValidator $validator = null) |
|
| 32 | { |
|
| 33 | $this->validator = $validator; |
|
| 34 | } |
|
| 35 | ||
| 36 | /** |
|
| 37 | * @param string $uri |
|
| 38 | * @param \stdClass $definition |
|
| 39 | * |
|
| 40 | * @return Description |
|
| 41 | */ |
|
| 42 | public function build(string $uri, \stdClass $definition): Description |
|
| 43 | { |
|
| 44 | $resolver = new RefResolver($definition, $uri); |
|
| 45 | ||
| 46 | /** @var \stdClass $definition */ |
|
| 47 | $description = new RamlDescription(new Document($uri, $definition = $resolver->resolve())); |
|
| 48 | ||
| 49 | if ($this->validator) { |
|
| 50 | $this->validator->validate($definition); |
|
| 51 | } |
|
| 52 | ||
| 53 | return $description; |
|
| 54 | } |
|
| 55 | } |
|
| 56 | ||