add scope field to ApiDoc

This commit is contained in:
Ilyas Salikhov 2024-10-01 16:11:23 +03:00
parent 551366412e
commit d761d890a0
5 changed files with 81 additions and 1 deletions

View File

@ -175,6 +175,8 @@ class ApiDoc
*/ */
private $tags = []; private $tags = [];
private ?string $scope = null;
public function __construct(array $data) public function __construct(array $data)
{ {
$this->resource = !empty($data['resource']) ? $data['resource'] : false; $this->resource = !empty($data['resource']) ? $data['resource'] : false;
@ -664,6 +666,16 @@ class ApiDoc
return $this->method; return $this->method;
} }
public function setScope(string $scope): void
{
$this->scope = $scope;
}
public function getScope(): ?string
{
return $this->scope;
}
/** /**
* @return array * @return array
*/ */
@ -742,6 +754,7 @@ class ApiDoc
$data['authentication'] = $this->authentication; $data['authentication'] = $this->authentication;
$data['authenticationRoles'] = $this->authenticationRoles; $data['authenticationRoles'] = $this->authenticationRoles;
$data['deprecated'] = $this->deprecated; $data['deprecated'] = $this->deprecated;
$data['scope'] = $this->scope;
return $data; return $data;
} }

View File

@ -506,10 +506,13 @@ class ApiDocExtractor
if (isset($v['children'])) { if (isset($v['children'])) {
if (isset($v['class'])) { if (isset($v['class'])) {
foreach ($v['children'] as $key => $item) { foreach ($v['children'] as $key => $item) {
$array[$k]['children'][$key]['parentClass'] = $v['class']; if (empty($item['parentClass'] ?? null)) {
$array[$k]['children'][$key]['parentClass'] = $v['class'];
}
$array[$k]['children'][$key]['field'] = $key; $array[$k]['children'][$key]['field'] = $key;
} }
} }
$array[$k]['children'] = $this->setParentClasses($array[$k]['children']); $array[$k]['children'] = $this->setParentClasses($array[$k]['children']);
} }
} }

View File

@ -62,6 +62,7 @@ class SimpleFormatterTest extends WebTestCase
'authentication' => false, 'authentication' => false,
'authenticationRoles' => [], 'authenticationRoles' => [],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
]; ];
$this->assertEquals($expected, $result); $this->assertEquals($expected, $result);

View File

@ -1114,6 +1114,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
'views' => [ 'views' => [
'default', 'default',
'test', 'test',
@ -1128,6 +1129,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
2 => [ 2 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1145,6 +1147,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
3 => [ 3 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1156,6 +1159,7 @@ With multiple lines.',
1 => 'ROLE_FOOBAR', 1 => 'ROLE_FOOBAR',
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
4 => [ 4 => [
'method' => 'POST', 'method' => 'POST',
@ -1422,6 +1426,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
5 => [ 5 => [
'method' => 'GET', 'method' => 'GET',
@ -1456,6 +1461,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
6 => [ 6 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1490,6 +1496,7 @@ And, it supports multilines until the first \'@\' char.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
7 => [ 7 => [
'method' => 'GET', 'method' => 'GET',
@ -1509,6 +1516,7 @@ And, it supports multilines until the first \'@\' char.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
'resourceDescription' => 'Popo', 'resourceDescription' => 'Popo',
'section' => 'Popo', 'section' => 'Popo',
], ],
@ -1538,6 +1546,7 @@ And, it supports multilines until the first \'@\' char.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
'resourceDescription' => 'Popo', 'resourceDescription' => 'Popo',
'section' => 'Popo', 'section' => 'Popo',
], ],
@ -1558,6 +1567,7 @@ And, it supports multilines until the first \'@\' char.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
'resourceDescription' => 'Popo', 'resourceDescription' => 'Popo',
'section' => 'Popo', 'section' => 'Popo',
], ],
@ -1586,6 +1596,7 @@ And, it supports multilines until the first \'@\' char.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
'resourceDescription' => 'Popo', 'resourceDescription' => 'Popo',
'section' => 'Popo', 'section' => 'Popo',
], ],
@ -1622,6 +1633,7 @@ And, it supports multilines until the first \'@\' char.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
'resourceDescription' => 'Popo', 'resourceDescription' => 'Popo',
'section' => 'Popo', 'section' => 'Popo',
], ],
@ -1889,6 +1901,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
13 => [ 13 => [
'method' => 'GET', 'method' => 'GET',
@ -1915,6 +1928,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
14 => [ 14 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1924,6 +1938,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
15 => [ 15 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1940,6 +1955,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
16 => [ 16 => [
'method' => 'GET', 'method' => 'GET',
@ -1949,6 +1965,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => true, 'deprecated' => true,
'scope' => null,
], ],
17 => [ 17 => [
'method' => 'POST', 'method' => 'POST',
@ -1968,6 +1985,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
18 => [ 18 => [
'method' => 'GET', 'method' => 'GET',
@ -1984,6 +2002,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
19 => [ 19 => [
'method' => 'GET', 'method' => 'GET',
@ -1999,6 +2018,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
20 => [ 20 => [
'method' => 'GET', 'method' => 'GET',
@ -2034,6 +2054,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
22 => [ 22 => [
'method' => 'ANY', 'method' => 'ANY',
@ -2135,6 +2156,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
23 => [ 23 => [
'method' => 'ANY', 'method' => 'ANY',
@ -2182,6 +2204,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
24 => [ 24 => [
'method' => 'ANY', 'method' => 'ANY',
@ -2283,6 +2306,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
25 => [ 25 => [
'method' => 'POST', 'method' => 'POST',
@ -2292,6 +2316,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
26 => [ 26 => [
'method' => 'POST', 'method' => 'POST',
@ -2301,6 +2326,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
27 => [ 27 => [
'authentication' => false, 'authentication' => false,
@ -2309,6 +2335,7 @@ With multiple lines.',
'https' => false, 'https' => false,
'authenticationRoles' => [], 'authenticationRoles' => [],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
'requirements' => [ 'requirements' => [
'_format' => [ '_format' => [
'requirement' => '', 'requirement' => '',

View File

@ -290,6 +290,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
1 => [ 1 => [
'method' => 'PUT|PATCH', 'method' => 'PUT|PATCH',
@ -312,6 +313,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
], ],
'/api/resources' => [ '/api/resources' => [
@ -383,6 +385,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
1 => [ 1 => [
'method' => 'POST', 'method' => 'POST',
@ -821,6 +824,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
2 => [ 2 => [
'method' => 'DELETE', 'method' => 'DELETE',
@ -843,6 +847,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
3 => [ 3 => [
'method' => 'GET', 'method' => 'GET',
@ -865,6 +870,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
], ],
'/tests' => [ '/tests' => [
@ -896,6 +902,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
1 => [ 1 => [
'method' => 'POST', 'method' => 'POST',
@ -956,6 +963,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
], ],
'/tests2' => [ '/tests2' => [
@ -979,6 +987,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
], ],
'TestResource' => [ 'TestResource' => [
@ -993,6 +1002,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
], ],
'others' => [ 'others' => [
@ -1031,6 +1041,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
1 => [ 1 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1048,6 +1059,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
2 => [ 2 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1059,6 +1071,7 @@ With multiple lines.',
1 => 'ROLE_FOOBAR', 1 => 'ROLE_FOOBAR',
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
3 => [ 3 => [
'method' => 'POST', 'method' => 'POST',
@ -1325,6 +1338,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
4 => [ 4 => [
'method' => 'GET', 'method' => 'GET',
@ -1357,6 +1371,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
5 => [ 5 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1391,6 +1406,7 @@ And, it supports multilines until the first \'@\' char.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
6 => [ 6 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1656,6 +1672,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
7 => [ 7 => [
'method' => 'GET', 'method' => 'GET',
@ -1682,6 +1699,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
8 => [ 8 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1691,6 +1709,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
9 => [ 9 => [
'method' => 'GET', 'method' => 'GET',
@ -1701,6 +1720,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
10 => [ 10 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1717,6 +1737,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
11 => [ 11 => [
'method' => 'GET', 'method' => 'GET',
@ -1726,6 +1747,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => true, 'deprecated' => true,
'scope' => null,
], ],
12 => [ 12 => [
'method' => 'POST', 'method' => 'POST',
@ -1745,6 +1767,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
13 => [ 13 => [
'method' => 'GET', 'method' => 'GET',
@ -1761,6 +1784,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
14 => [ 14 => [
'method' => 'GET', 'method' => 'GET',
@ -1776,6 +1800,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
15 => [ 15 => [
'method' => 'GET', 'method' => 'GET',
@ -1792,6 +1817,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
16 => [ 16 => [
'method' => 'POST', 'method' => 'POST',
@ -1811,6 +1837,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
17 => [ 17 => [
'method' => 'GET', 'method' => 'GET',
@ -1826,6 +1853,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
18 => [ 18 => [
'method' => 'GET', 'method' => 'GET',
@ -1841,6 +1869,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
19 => [ 19 => [
'method' => 'GET', 'method' => 'GET',
@ -1855,6 +1884,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
20 => [ 20 => [
'method' => 'ANY', 'method' => 'ANY',
@ -1974,6 +2004,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
21 => [ 21 => [
'method' => 'ANY', 'method' => 'ANY',
@ -2021,6 +2052,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
22 => [ 22 => [
'method' => 'ANY', 'method' => 'ANY',
@ -2140,6 +2172,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
23 => [ 23 => [
'method' => 'POST', 'method' => 'POST',
@ -2149,6 +2182,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
24 => [ 24 => [
'method' => 'POST', 'method' => 'POST',
@ -2158,6 +2192,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
25 => [ 25 => [
'method' => 'GET', 'method' => 'GET',
@ -2174,6 +2209,7 @@ With multiple lines.',
'authenticationRoles' => [ 'authenticationRoles' => [
], ],
'deprecated' => false, 'deprecated' => false,
'scope' => null,
], ],
], ],
]; ];