63 lines
1.9 KiB
PHP
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);
|
|
}
|
|
}
|