/**
* @param ContentQueryParser $contentQuery
*
* @return mixed
*/
public function __invoke(ContentQueryParser $contentQuery)
{
if (is_numeric($contentQuery->getIdentifier())) {
$contentQuery->setParameter('id', $contentQuery->getIdentifier());
} else {
$contentQuery->setParameter('slug', $contentQuery->getIdentifier());
}
if (count($contentQuery->getContentTypes()) === 1) {
$contentQuery->setDirective('returnsingle', true);
}
return call_user_func_array($contentQuery->getHandler('select'), [$contentQuery]);
}