Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/Concerns/HasASchema.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

namespace Apiboard\OpenAPI\Concerns;

use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;
use Apiboard\OpenAPI\Structure\Schema;

trait HasASchema
{
use HasReferences;

public function schema(): Schema|Reference
public function schema(): Schema|JsonReference
{
$schema = $this->data['schema'];

if ($this->isReference($schema)) {
return new Reference($schema['$ref']);
return new JsonReference($schema['$ref']);
}

return new Schema($schema, $this->pointer?->append('schema'));
Expand Down
8 changes: 4 additions & 4 deletions src/Concerns/HasReferences.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

namespace Apiboard\OpenAPI\Concerns;

use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;

trait HasReferences
{
abstract public function toArray(): array;

/**
* @return array<Reference>
* @return array<JsonReference>
*/
public function references(): array
{
Expand All @@ -18,12 +18,12 @@ public function references(): array
$references = [];

array_walk_recursive($properties, function (mixed $value, string $key) use (&$references) {
if ($value instanceof Reference) {
if ($value instanceof JsonReference) {
$references[] = $value;
}

if ($key === '$ref') {
$references[] = new Reference($value);
$references[] = new JsonReference($value);
}
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use Symfony\Component\Filesystem\Path;

final class Reference
final class JsonReference
{
private string $value;

Expand Down
8 changes: 4 additions & 4 deletions src/Structure/Callbacks.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\Concerns\HasVendorExtensions;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;
use ArrayAccess;
use Countable;
use Iterator;
Expand All @@ -21,7 +21,7 @@ public function __construct(array $data, JsonPointer $pointer = null)
{
foreach ($data as $expression => $value) {
$data[$expression] = match (true) {
$this->isReference($value) => new Reference($value['$ref']),
$this->isReference($value) => new JsonReference($value['$ref']),
$this->isVendorExtension($expression) => $value,
default => new PathItem($expression, $value),
};
Expand All @@ -30,7 +30,7 @@ public function __construct(array $data, JsonPointer $pointer = null)
parent::__construct($data, $pointer);
}

public function offsetGet(mixed $expression): PathItem|Reference|null
public function offsetGet(mixed $expression): PathItem|JsonReference|null
{
if ($this->isVendorExtension($expression)) {
return null;
Expand All @@ -39,7 +39,7 @@ public function offsetGet(mixed $expression): PathItem|Reference|null
return $this->data[$expression] ?? null;
}

public function current(): PathItem|Reference
public function current(): PathItem|JsonReference
{
return $this->iterator->current();
}
Expand Down
8 changes: 4 additions & 4 deletions src/Structure/Examples.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Apiboard\OpenAPI\Concerns\CanBeUsedAsArray;
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;
use ArrayAccess;
use Countable;
use Iterator;
Expand All @@ -19,20 +19,20 @@ public function __construct(array $data, JsonPointer $pointer = null)
{
foreach ($data as $key => $value) {
$data[$key] = match ($this->isReference($value)) {
true => new Reference($value['$ref']),
true => new JsonReference($value['$ref']),
default => new Example($value, $pointer?->append($key)),
};
}

parent::__construct($data, $pointer);
}

public function offsetGet(mixed $offset): Example|Reference|null
public function offsetGet(mixed $offset): Example|JsonReference|null
{
return $this->data[$offset] ?? null;
}

public function current(): Example|Reference
public function current(): Example|JsonReference
{
return $this->iterator->current();
}
Expand Down
8 changes: 4 additions & 4 deletions src/Structure/Headers.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Apiboard\OpenAPI\Concerns\CanBeUsedAsArray;
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;
use ArrayAccess;
use Countable;
use Iterator;
Expand All @@ -19,20 +19,20 @@ public function __construct(array $data, JsonPointer $pointer = null)
{
foreach ($data as $name => $value) {
$data[$name] = match ($this->isReference($value)) {
true => new Reference($value['$ref']),
true => new JsonReference($value['$ref']),
default => new Header($name, $value, $pointer?->append($name)),
};
}

parent::__construct($data, $pointer);
}

public function offsetGet(mixed $name): Header|Reference|null
public function offsetGet(mixed $name): Header|JsonReference|null
{
return $this->data[$name] ?? null;
}

public function current(): Header|Reference
public function current(): Header|JsonReference
{
return $this->iterator->current();
}
Expand Down
6 changes: 3 additions & 3 deletions src/Structure/Link.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use Apiboard\OpenAPI\Concerns\CanBeDescribed;
use Apiboard\OpenAPI\Concerns\HasVendorExtensions;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\JsonReference;

final class Link extends Structure
{
Expand All @@ -16,15 +16,15 @@ public function operationId(): ?string
return $this->data['operationId'] ?? null;
}

public function operationRef(): ?JsonPointer
public function operationRef(): ?JsonReference
{
$operationRef = $this->data['operationRef'] ?? null;

if ($operationRef === null) {
return null;
}

return new JsonPointer($operationRef);
return new JsonReference($operationRef);
}

public function parameters(): ?array
Expand Down
8 changes: 4 additions & 4 deletions src/Structure/Links.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Apiboard\OpenAPI\Concerns\CanBeUsedAsArray;
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;
use ArrayAccess;
use Countable;
use Iterator;
Expand All @@ -19,20 +19,20 @@ public function __construct(array $data, JsonPointer $pointer = null)
{
foreach ($data as $name => $value) {
$data[$name] = match ($this->isReference($value)) {
true => new Reference($value['$ref']),
true => new JsonReference($value['$ref']),
default => new Link($value, $pointer?->append($name)),
};
}

parent::__construct($data, $pointer);
}

public function offsetGet(mixed $name): Link|Reference|null
public function offsetGet(mixed $name): Link|JsonReference|null
{
return $this->data[$name] ?? null;
}

public function current(): Link|Reference
public function current(): Link|JsonReference
{
return $this->iterator->current();
}
Expand Down
6 changes: 3 additions & 3 deletions src/Structure/MediaType.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\Concerns\HasVendorExtensions;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;

final class MediaType extends Structure
{
Expand All @@ -25,7 +25,7 @@ public function contentType(): string
return $this->contentType;
}

public function schema(): Schema|Reference|null
public function schema(): Schema|JsonReference|null
{
$schema = $this->data['schema'] ?? null;

Expand All @@ -34,7 +34,7 @@ public function schema(): Schema|Reference|null
}

if ($this->isReference($schema)) {
return new Reference($schema['$ref']);
return new JsonReference($schema['$ref']);
}

return new Schema($schema, $this->pointer()?->append('schema'));
Expand Down
6 changes: 3 additions & 3 deletions src/Structure/Operation.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\Concerns\HasVendorExtensions;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;

final class Operation extends Structure
{
Expand Down Expand Up @@ -50,7 +50,7 @@ public function parameters(): ?Parameters
return new Parameters($parameters, $this->pointer()?->append('parameters'));
}

public function requestBody(): RequestBody|Reference|null
public function requestBody(): RequestBody|JsonReference|null
{
$requestBody = $this->data['requestBody'] ?? null;

Expand All @@ -59,7 +59,7 @@ public function requestBody(): RequestBody|Reference|null
}

if ($this->isReference($requestBody)) {
return new Reference($requestBody['$ref']);
return new JsonReference($requestBody['$ref']);
}

return new RequestBody($requestBody, $this->pointer()?->append('requestBody'));
Expand Down
12 changes: 6 additions & 6 deletions src/Structure/Parameters.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Apiboard\OpenAPI\Concerns\CanBeUsedAsArray;
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;
use ArrayAccess;
use Countable;
use Iterator;
Expand All @@ -20,20 +20,20 @@ public function __construct(array $data, JsonPointer $pointer = null)
foreach ($data as $key => $value) {
$data[$key] = match (true) {
$value instanceof Parameter => $value,
$this->isReference($value) => new Reference($value['$ref']),
$this->isReference($value) => new JsonReference($value['$ref']),
default => new Parameter($value, $pointer?->append($key)),
};
}

parent::__construct($data, $pointer);
}

public function offsetGet(mixed $offset): Parameter|Reference|null
public function offsetGet(mixed $offset): Parameter|JsonReference|null
{
return $this->data[$offset] ?? null;
}

public function current(): Parameter|Reference
public function current(): Parameter|JsonReference
{
return $this->iterator->current();
}
Expand All @@ -60,8 +60,8 @@ public function onlyRequired(): self

private function filter(callable $callback): array
{
return array_filter($this->data, function (Parameter|Reference $value) use ($callback) {
if ($value instanceof Reference) {
return array_filter($this->data, function (Parameter|JsonReference $value) use ($callback) {
if ($value instanceof JsonReference) {
return false;
}

Expand Down
8 changes: 4 additions & 4 deletions src/Structure/Paths.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Apiboard\OpenAPI\Concerns\HasReferences;
use Apiboard\OpenAPI\Concerns\HasVendorExtensions;
use Apiboard\OpenAPI\References\JsonPointer;
use Apiboard\OpenAPI\References\Reference;
use Apiboard\OpenAPI\References\JsonReference;
use ArrayAccess;
use Countable;
use Iterator;
Expand All @@ -21,7 +21,7 @@ public function __construct(array $data, JsonPointer $pointer = null)
{
foreach ($data as $uri => $value) {
$data[$uri] = match (true) {
$this->isReference($value) => new Reference($value['$ref']),
$this->isReference($value) => new JsonReference($value['$ref']),
$this->isVendorExtension($uri) => $value,
default => new PathItem($uri, $value, $pointer?->append($uri)),
};
Expand All @@ -30,7 +30,7 @@ public function __construct(array $data, JsonPointer $pointer = null)
parent::__construct($data, $pointer);
}

public function offsetGet(mixed $uri): PathItem|Reference|null
public function offsetGet(mixed $uri): PathItem|JsonReference|null
{
if ($this->isVendorExtension($uri)) {
return null;
Expand All @@ -39,7 +39,7 @@ public function offsetGet(mixed $uri): PathItem|Reference|null
return $this->data[$uri] ?? null;
}

public function current(): PathItem|Reference
public function current(): PathItem|JsonReference
{
return $this->iterator->current();
}
Expand Down
Loading