forked from extern/egroupware
move egw_json_(request|response|push) to api, missing commit of notifications_push class
This commit is contained in:
parent
1b5429f0ff
commit
45a0684491
@ -10,13 +10,14 @@
|
|||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// egw_json_push_backend is currently not autoloaded, it would only try egw_json for it!
|
use EGroupware\Api\Json;
|
||||||
require_once(EGW_API_INC.'/class.egw_json_push.inc.php');
|
|
||||||
|
use EGroupware\Api;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to push via notification polling and other json requests from client-side
|
* Class to push via notification polling and other json requests from client-side
|
||||||
*/
|
*/
|
||||||
class notifications_push implements egw_json_push_backend
|
class notifications_push implements Json\PushBackend
|
||||||
{
|
{
|
||||||
const APP = 'notifications';
|
const APP = 'notifications';
|
||||||
|
|
||||||
@ -39,8 +40,8 @@ class notifications_push implements egw_json_push_backend
|
|||||||
|
|
||||||
public static function get()
|
public static function get()
|
||||||
{
|
{
|
||||||
$already_send =& egw_cache::getSession(__CLASS__, 'already_send');
|
$already_send =& Api\Cache::getSession(__CLASS__, 'already_send');
|
||||||
$max_id = egw_cache::getInstance(__CLASS__, 'max_id');
|
$max_id = Api\Cache::getInstance(__CLASS__, 'max_id');
|
||||||
|
|
||||||
if (!isset($already_send))
|
if (!isset($already_send))
|
||||||
{
|
{
|
||||||
@ -49,13 +50,13 @@ class notifications_push implements egw_json_push_backend
|
|||||||
if (!isset($max_id))
|
if (!isset($max_id))
|
||||||
{
|
{
|
||||||
$max_id = (int)self::$db->select(self::TABLE, 'MAX(notify_id)', false, __LINE__, __FILE__, false, '', self::APP)->fetchColumn();
|
$max_id = (int)self::$db->select(self::TABLE, 'MAX(notify_id)', false, __LINE__, __FILE__, false, '', self::APP)->fetchColumn();
|
||||||
egw_cache::setInstance(__CLASS__, 'max_id', $max_id);
|
Api\Cache::setInstance(__CLASS__, 'max_id', $max_id);
|
||||||
}
|
}
|
||||||
$already_send = $max_id;
|
$already_send = $max_id;
|
||||||
}
|
}
|
||||||
elseif (isset($max_id) && $max_id > $already_send)
|
elseif (isset($max_id) && $max_id > $already_send)
|
||||||
{
|
{
|
||||||
$response = egw_json_response::get();
|
$response = Json\Response::get();
|
||||||
|
|
||||||
foreach(self::$db->select(self::TABLE, '*', array(
|
foreach(self::$db->select(self::TABLE, '*', array(
|
||||||
'account_id' => array(0, $GLOBALS['egw_info']['user']['account_id']),
|
'account_id' => array(0, $GLOBALS['egw_info']['user']['account_id']),
|
||||||
@ -86,9 +87,9 @@ class notifications_push implements egw_json_push_backend
|
|||||||
public function addGeneric($account_id, $key, $data)
|
public function addGeneric($account_id, $key, $data)
|
||||||
{
|
{
|
||||||
// todo: check $account_id is online
|
// todo: check $account_id is online
|
||||||
if ($account_id > 0 && !egw_session::notifications_active($account_id))
|
if ($account_id > 0 && !Api\Session::notifications_active($account_id))
|
||||||
{
|
{
|
||||||
throw new egw_json_push_exception_not_online();
|
throw new Json\Exception\NotOnline();
|
||||||
}
|
}
|
||||||
self::$db->insert(self::TABLE, array(
|
self::$db->insert(self::TABLE, array(
|
||||||
'account_id' => $account_id,
|
'account_id' => $account_id,
|
||||||
@ -100,7 +101,7 @@ class notifications_push implements egw_json_push_backend
|
|||||||
), false, __LINE__, __FILE__, self::APP);
|
), false, __LINE__, __FILE__, self::APP);
|
||||||
|
|
||||||
// cache highest id, to not poll database
|
// cache highest id, to not poll database
|
||||||
egw_cache::setInstance(__CLASS__, 'max_id', self::$db->get_last_insert_id(self::TABLE, 'notify_id'));
|
Api\Cache::setInstance(__CLASS__, 'max_id', self::$db->get_last_insert_id(self::TABLE, 'notify_id'));
|
||||||
|
|
||||||
self::cleanup_push_msgs();
|
self::cleanup_push_msgs();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user