private function getFiltersParameters(string $resourceClass, string $operationName, ResourceMetadata $resourceMetadata) : array
{
if (null === $this->filterCollection) {
return [];
}
$parameters = [];
$resourceFilters = $resourceMetadata->getCollectionOperationAttribute($operationName, 'filters', [], true);
foreach ($this->filterCollection as $filterName => $filter) {
if (!in_array($filterName, $resourceFilters)) {
continue;
}
foreach ($filter->getDescription($resourceClass) as $name => $data) {
$parameter = ['name' => $name, 'in' => 'query', 'required' => $data['required']];
$parameter += $this->getType($data['type'], false);
if (isset($data['swagger'])) {
$parameter = $data['swagger'] + $parameter;
}
$parameters[] = $parameter;
}
}
return $parameters;
}