17 import(
'lib.pkp.classes.handler.APIHandler');
18 import(
'classes.core.Services');
26 $this->_handlerPath =
'stats/editorial';
31 'handler' => [$this,
'get'],
32 'roles' => [ROLE_ID_SITE_ADMIN, ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR],
36 'handler' => [$this,
'getAverages'],
37 'roles' => [ROLE_ID_SITE_ADMIN, ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR],
41 parent::__construct();
47 function authorize($request, &$args, $roleAssignments) {
49 import(
'lib.pkp.classes.security.authorization.ContextAccessPolicy');
52 import(
'lib.pkp.classes.security.authorization.PolicySet');
53 $rolePolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
54 import(
'lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
55 foreach ($roleAssignments as $role => $operations) {
60 return parent::authorize($request, $args, $roleAssignments);
74 public function get($slimRequest, $response, $args) {
77 if (!$request->getContext()) {
78 return $response->withStatus(404)->withJsonError(
'api.404.resourceNotFound');
82 foreach ($slimRequest->getQueryParams() as $param => $value) {
86 $params[$param] = $value;
89 case $this->sectionIdsQueryParam:
90 if (is_string($value) && strpos($value,
',') > -1) {
91 $value = explode(
',', $value);
92 } elseif (!is_array($value)) {
95 $params[$param] = array_map(
'intval', $value);
102 $params[
'contextIds'] = [$request->getContext()->getId()];
105 if ($result !==
true) {
106 return $response->withStatus(400)->withJsonError($result);
109 return $response->withJson(array_map(
111 $item[
'name'] = __($item[
'name']);
132 if (!$request->getContext()) {
133 return $response->withStatus(404)->withJsonError(
'api.404.resourceNotFound');
137 foreach ($slimRequest->getQueryParams() as $param => $value) {
139 case $this->sectionIdsQueryParam:
140 if (is_string($value) && strpos($value,
',') > -1) {
141 $value = explode(
',', $value);
142 } elseif (!is_array($value)) {
145 $params[$param] = array_map(
'intval', $value);
150 \HookRegistry::call(
'API::stats::editorial::averages::params', array(&$params, $slimRequest));
152 $params[
'contextIds'] = [$request->getContext()->getId()];