mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-09 11:09:26 +03:00
commit
05bf7b54c0
29
ModelDescriber/DateTimeModelDescriber.php
Normal file
29
ModelDescriber/DateTimeModelDescriber.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the NelmioApiDocBundle package.
|
||||||
|
*
|
||||||
|
* (c) Nelmio
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Nelmio\ApiDocBundle\ModelDescriber;
|
||||||
|
|
||||||
|
use EXSyst\Component\Swagger\Schema;
|
||||||
|
use Nelmio\ApiDocBundle\Model\Model;
|
||||||
|
|
||||||
|
class DateTimeModelDescriber implements ModelDescriberInterface
|
||||||
|
{
|
||||||
|
public function describe(Model $model, Schema $schema)
|
||||||
|
{
|
||||||
|
$schema->setType('string');
|
||||||
|
$schema->setFormat('date-time');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function supports(Model $model): bool
|
||||||
|
{
|
||||||
|
return 'DateTime' === $model->getType()->getClassName() || 'DateTimeImmutable' === $model->getType()->getClassName();
|
||||||
|
}
|
||||||
|
}
|
@ -56,6 +56,10 @@
|
|||||||
<tag name="nelmio_api_doc.model_describer" />
|
<tag name="nelmio_api_doc.model_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
<service id="nelmio_api_doc.model_describers.datetime" class="Nelmio\ApiDocBundle\ModelDescriber\DateTimeModelDescriber" public="false">
|
||||||
|
<tag name="nelmio_api_doc.model_describer" priority="100" />
|
||||||
|
</service>
|
||||||
|
|
||||||
<service id="nelmio_api_doc.model_describers.collection" class="Nelmio\ApiDocBundle\ModelDescriber\CollectionModelDescriber" public="false">
|
<service id="nelmio_api_doc.model_describers.collection" class="Nelmio\ApiDocBundle\ModelDescriber\CollectionModelDescriber" public="false">
|
||||||
<tag name="nelmio_api_doc.model_describer" />
|
<tag name="nelmio_api_doc.model_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
@ -16,7 +16,21 @@ namespace Nelmio\ApiDocBundle\Tests\Functional\Entity;
|
|||||||
*/
|
*/
|
||||||
class User
|
class User
|
||||||
{
|
{
|
||||||
public function addUsers(User $user)
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
*/
|
||||||
|
private $createdAt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var User[]
|
||||||
|
*/
|
||||||
|
private $users;
|
||||||
|
|
||||||
|
public function setCreatedAt(\DateTime $createAt)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setUsers(array $users)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,12 +150,20 @@ class FunctionalTest extends WebTestCase
|
|||||||
$model = $this->getModel('User');
|
$model = $this->getModel('User');
|
||||||
$this->assertEquals('object', $model->getType());
|
$this->assertEquals('object', $model->getType());
|
||||||
$properties = $model->getProperties();
|
$properties = $model->getProperties();
|
||||||
|
$this->assertCount(3, $properties);
|
||||||
|
|
||||||
$this->assertTrue($properties->has('users'));
|
$this->assertTrue($properties->has('users'));
|
||||||
$this->assertEquals('#/definitions/User[]', $properties->get('users')->getRef());
|
$this->assertEquals('#/definitions/User[]', $properties->get('users')->getRef());
|
||||||
|
|
||||||
$this->assertTrue($properties->has('dummy'));
|
$this->assertTrue($properties->has('dummy'));
|
||||||
$this->assertEquals('#/definitions/Dummy2', $properties->get('dummy')->getRef());
|
$this->assertEquals('#/definitions/Dummy2', $properties->get('dummy')->getRef());
|
||||||
|
|
||||||
|
$this->assertTrue($properties->has('createdAt'));
|
||||||
|
$this->assertEquals('#/definitions/DateTime', $properties->get('createdAt')->getRef());
|
||||||
|
|
||||||
|
$model = $this->getModel('DateTime');
|
||||||
|
$this->assertEquals('string', $model->getType());
|
||||||
|
$this->assertEquals('date-time', $model->getFormat());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testUsersModel()
|
public function testUsersModel()
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
|
|
||||||
namespace Nelmio\ApiDocBundle\Tests\Functional;
|
namespace Nelmio\ApiDocBundle\Tests\Functional;
|
||||||
|
|
||||||
use JMS\SerializerBundle\JMSSerializerBundle;
|
|
||||||
|
|
||||||
class JMSFunctionalTest extends WebTestCase
|
class JMSFunctionalTest extends WebTestCase
|
||||||
{
|
{
|
||||||
public function testModelDocumentation()
|
public function testModelDocumentation()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user