60 lines
1.6 KiB
PHP
60 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file api/v1/stats/publications/StatsPublicationHandler.php
|
|
*
|
|
* Copyright (c) 2014-2021 Simon Fraser University
|
|
* Copyright (c) 2003-2021 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class StatsPublicationHandler
|
|
*
|
|
* @ingroup api_v1_stats
|
|
*
|
|
* @brief Handle API requests for publication statistics.
|
|
*
|
|
*/
|
|
|
|
namespace APP\API\v1\stats\publications;
|
|
|
|
class StatsPublicationHandler extends \PKP\API\v1\stats\publications\PKPStatsPublicationHandler
|
|
{
|
|
/** @var string The name of the section ids query param for this application */
|
|
public $sectionIdsQueryParam = 'sectionIds';
|
|
|
|
public function getSectionIdsQueryParam()
|
|
{
|
|
return $this->sectionIdsQueryParam;
|
|
}
|
|
|
|
protected function getManyAllowedParams()
|
|
{
|
|
$params = parent::getManyAllowedParams();
|
|
$params[] = 'issueIds';
|
|
return $params;
|
|
}
|
|
|
|
protected function getManyTimelineAllowedParams()
|
|
{
|
|
$params = parent::getManyTimelineAllowedParams();
|
|
$params[] = 'issueIds';
|
|
return $params;
|
|
}
|
|
|
|
protected function _processParam(string $requestParam, mixed $value): array
|
|
{
|
|
if ($requestParam == 'issueIds') {
|
|
$returnParams = [];
|
|
if (is_string($value) && str_contains($value, ',')) {
|
|
$value = explode(',', $value);
|
|
} elseif (!is_array($value)) {
|
|
$value = [$value];
|
|
}
|
|
$returnParams[$requestParam] = array_map('intval', $value);
|
|
} else {
|
|
$returnParams = parent::_processParam($requestParam, $value);
|
|
}
|
|
return $returnParams;
|
|
}
|
|
}
|