Allow adding inline documentation
This commit is contained in:
parent
c6ef714eb4
commit
2570c24390
|
|
@ -246,7 +246,7 @@ class Index implements RequestHandlerInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($filters[$name])) {
|
if (isset($filters[$name])) {
|
||||||
$filters[$name]($query, $value, $request);
|
$filters[$name]->getCallback()($query, $value, $request);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ abstract class Field
|
||||||
use HasListeners;
|
use HasListeners;
|
||||||
|
|
||||||
private $name;
|
private $name;
|
||||||
|
private $description;
|
||||||
private $property;
|
private $property;
|
||||||
private $visible = true;
|
private $visible = true;
|
||||||
private $single = false;
|
private $single = false;
|
||||||
|
|
@ -41,6 +42,16 @@ abstract class Field
|
||||||
*/
|
*/
|
||||||
abstract public function getLocation(): string;
|
abstract public function getLocation(): string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the description of the field for documentation generation.
|
||||||
|
*/
|
||||||
|
public function description(string $description)
|
||||||
|
{
|
||||||
|
$this->description = $description;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the model property to which this field corresponds.
|
* Set the model property to which this field corresponds.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of tobyz/json-api-server.
|
||||||
|
*
|
||||||
|
* (c) Toby Zerner <toby.zerner@gmail.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Tobyz\JsonApiServer\Schema;
|
||||||
|
|
||||||
|
final class Filter
|
||||||
|
{
|
||||||
|
private $name;
|
||||||
|
private $callback;
|
||||||
|
private $description;
|
||||||
|
|
||||||
|
public function __construct(string $name, callable $callback)
|
||||||
|
{
|
||||||
|
$this->name = $name;
|
||||||
|
$this->callback = $callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName(): string
|
||||||
|
{
|
||||||
|
return $this->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCallback(): callable
|
||||||
|
{
|
||||||
|
return $this->callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the description of the type for documentation generation.
|
||||||
|
*/
|
||||||
|
public function description(string $description)
|
||||||
|
{
|
||||||
|
$this->description = $description;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -19,6 +19,7 @@ final class Type
|
||||||
{
|
{
|
||||||
use HasListeners, HasMeta;
|
use HasListeners, HasMeta;
|
||||||
|
|
||||||
|
private $description;
|
||||||
private $fields = [];
|
private $fields = [];
|
||||||
private $filters = [];
|
private $filters = [];
|
||||||
private $sortFields = [];
|
private $sortFields = [];
|
||||||
|
|
@ -35,6 +36,14 @@ final class Type
|
||||||
private $deletable = false;
|
private $deletable = false;
|
||||||
private $deleteCallback;
|
private $deleteCallback;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the description of the type for documentation generation.
|
||||||
|
*/
|
||||||
|
public function description(string $description)
|
||||||
|
{
|
||||||
|
$this->description = $description;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add an attribute to the resource type.
|
* Add an attribute to the resource type.
|
||||||
*
|
*
|
||||||
|
|
@ -98,9 +107,9 @@ final class Type
|
||||||
/**
|
/**
|
||||||
* Add a filter to the resource type.
|
* Add a filter to the resource type.
|
||||||
*/
|
*/
|
||||||
public function filter(string $name, callable $callback): void
|
public function filter(string $name, callable $callback): Filter
|
||||||
{
|
{
|
||||||
$this->filters[$name] = $callback;
|
return $this->filters[$name] = new Filter($name, $callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue