mirror of
https://github.com/YunoHost-Apps/movim_ynh.git
synced 2024-09-03 19:46:19 +02:00
239 lines
6.4 KiB
PHP
Executable file
239 lines
6.4 KiB
PHP
Executable file
<?php
|
|
|
|
namespace Modl;
|
|
|
|
class PresenceDAO extends SQL {
|
|
function __construct() {
|
|
parent::__construct();
|
|
}
|
|
|
|
function set(Presence $presence) {
|
|
$id = sha1(
|
|
$presence->session.
|
|
$presence->jid.
|
|
$presence->resource
|
|
);
|
|
|
|
$this->_sql = '
|
|
update presence
|
|
set value = :value,
|
|
priority = :priority,
|
|
status = :status,
|
|
node = :node,
|
|
ver = :ver,
|
|
delay = :delay,
|
|
last = :last,
|
|
publickey = :publickey,
|
|
muc = :muc,
|
|
mucjid = :mucjid,
|
|
mucaffiliation = :mucaffiliation,
|
|
mucrole = :mucrole
|
|
where id = :id';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'value' => $presence->value,
|
|
'priority' => $presence->priority,
|
|
'status' => $presence->status,
|
|
'node' => $presence->node,
|
|
'ver' => $presence->ver,
|
|
'delay' => $presence->delay,
|
|
'last' => $presence->last,
|
|
'publickey' => $presence->publickey,
|
|
'muc' => $presence->muc,
|
|
'mucjid' => $presence->mucjid,
|
|
'mucaffiliation' => $presence->mucaffiliation,
|
|
'mucrole' => $presence->mucrole,
|
|
'id' => $id
|
|
)
|
|
);
|
|
|
|
$this->run('Presence');
|
|
|
|
if(!$this->_effective) {
|
|
$this->_sql = '
|
|
insert into presence
|
|
(id,
|
|
session,
|
|
jid,
|
|
resource,
|
|
value,
|
|
priority,
|
|
status,
|
|
node,
|
|
ver,
|
|
delay,
|
|
last,
|
|
publickey,
|
|
muc,
|
|
mucjid,
|
|
mucaffiliation,
|
|
mucrole)
|
|
values(
|
|
:id,
|
|
:session,
|
|
:jid,
|
|
:resource,
|
|
:value,
|
|
:priority,
|
|
:status,
|
|
:node,
|
|
:ver,
|
|
:delay,
|
|
:last,
|
|
:publickey,
|
|
:muc,
|
|
:mucjid,
|
|
:mucaffiliation,
|
|
:mucrole)';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'id' => $id,
|
|
'session' => $presence->session,
|
|
'jid' => $presence->jid,
|
|
'resource' => $presence->resource,
|
|
'value' => $presence->value,
|
|
'priority' => $presence->priority,
|
|
'status' => $presence->status,
|
|
'node' => $presence->node,
|
|
'ver' => $presence->ver,
|
|
'delay' => $presence->delay,
|
|
'last' => $presence->last,
|
|
'publickey' => $presence->publickey,
|
|
'muc' => $presence->muc,
|
|
'mucjid' => $presence->mucjid,
|
|
'mucaffiliation' => $presence->mucaffiliation,
|
|
'mucrole' => $presence->mucrole
|
|
)
|
|
);
|
|
|
|
$this->run('Presence');
|
|
}
|
|
}
|
|
|
|
function delete(Presence $presence)
|
|
{
|
|
$id = sha1(
|
|
$presence->session.
|
|
$presence->jid.
|
|
$presence->resource
|
|
);
|
|
|
|
$this->_sql = '
|
|
delete from presence
|
|
where id = :id';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'id' => $id
|
|
)
|
|
);
|
|
|
|
return $this->run('Presence');
|
|
}
|
|
|
|
function getAll() {
|
|
$this->_sql = '
|
|
select * from presence;
|
|
';
|
|
|
|
$this->prepare('Presence');
|
|
return $this->run('Presence');
|
|
}
|
|
|
|
function getPresence($jid, $resource) {
|
|
$this->_sql = '
|
|
select * from presence
|
|
where
|
|
session = :session
|
|
and jid = :jid
|
|
and resource = :resource';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'session' => $this->_user,
|
|
'jid' => $jid,
|
|
'resource' => $resource
|
|
)
|
|
);
|
|
|
|
return $this->run('Presence', 'item');
|
|
}
|
|
|
|
function getMyPresenceRoom($jid) {
|
|
$this->_sql = '
|
|
select * from presence
|
|
where
|
|
session = :session
|
|
and jid = :jid
|
|
and mucjid = :session';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'session' => $this->_user,
|
|
'jid' => $jid,
|
|
)
|
|
);
|
|
|
|
return $this->run('Presence', 'item');
|
|
}
|
|
|
|
function getJid($jid) {
|
|
$this->_sql = '
|
|
select * from presence
|
|
where
|
|
session = :session
|
|
and jid = :jid
|
|
order by mucaffiliation desc';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'session' => $this->_user,
|
|
'jid' => $jid
|
|
)
|
|
);
|
|
|
|
return $this->run('Presence');
|
|
}
|
|
|
|
function clearPresence($session) {
|
|
$this->_sql = '
|
|
delete from presence
|
|
where
|
|
session = :session';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'session' => $session
|
|
)
|
|
);
|
|
|
|
return $this->run('Presence');
|
|
}
|
|
|
|
function clearMuc($muc) {
|
|
$this->_sql = '
|
|
delete from presence
|
|
where
|
|
session = :session
|
|
and jid = :jid';
|
|
|
|
$this->prepare(
|
|
'Presence',
|
|
array(
|
|
'session' => $this->_user,
|
|
'jid' => $muc
|
|
)
|
|
);
|
|
|
|
return $this->run('Presence');
|
|
}
|
|
}
|