Files
oc-server3/htdocs/okapi/services/apisrv/stats.php
2014-10-08 10:06:07 +02:00

63 lines
1.9 KiB
PHP

<?php
namespace okapi\services\apisrv\stats;
use Exception;
use okapi\Okapi;
use okapi\Db;
use okapi\Cache;
use okapi\OkapiRequest;
use okapi\ParamMissing;
use okapi\InvalidParam;
use okapi\OkapiServiceRunner;
use okapi\OkapiInternalRequest;
use okapi\Settings;
class WebService
{
public static function options()
{
return array(
'min_auth_level' => 0
);
}
public static function call(OkapiRequest $request)
{
$cachekey = "apisrv/stats";
$result = Cache::get($cachekey);
if (!$result)
{
$result = array(
'cache_count' => 0 + Db::select_value("
select count(*) from caches where status in (1,2,3)
"),
'user_count' => 0 + Db::select_value("
select count(*) from (
select distinct user_id
from cache_logs
where
type in (1,2)
and ".((Settings::get('OC_BRANCH') == 'oc.pl') ? "deleted = 0" : "true")."
UNION DISTINCT
select distinct user_id
from caches
) as t;
"),
'apps_count' => 0 + Db::select_value("select count(*) from okapi_consumers;"),
'apps_active' => 0 + Db::select_value("
select count(distinct s.consumer_key)
from
okapi_stats_hourly s,
okapi_consumers c
where
s.consumer_key = c.`key`
and s.period_start > date_add(now(), interval -30 day)
"),
);
Cache::set($cachekey, $result, 86400); # cache it for one day
}
return Okapi::formatted_response($request, $result);
}
}