diff --git a/controller/smscontroller.php b/controller/smscontroller.php index 7dea05d..d36acbc 100644 --- a/controller/smscontroller.php +++ b/controller/smscontroller.php @@ -80,6 +80,20 @@ class SmsController extends Controller { return new JSONResponse(array("smslist" => $smsList)); } + /** + * @NoAdminRequired + * @NoCSRFRequired + * + * This function is used by API v2 + * Phone will get this ID to push recent messages + * This call will be used combined with retrieveAllIds + * but will be used more times + */ + public function retrieveLastTimestamp () { + $ts = $this->smsMapper->getLastTimestamp($this->userId); + return new JSONResponse(array("timestamp" => $ts)); + } + /** * @NoAdminRequired * @NoCSRFRequired diff --git a/db/smsmapper.php b/db/smsmapper.php index c01ad4f..928e570 100644 --- a/db/smsmapper.php +++ b/db/smsmapper.php @@ -72,6 +72,18 @@ class SmsMapper extends Mapper { return $smsList; } + public function getLastTimestamp ($userId) { + $query = \OCP\DB::prepare('SELECT max(sms_date) as mx FROM ' . + '*PREFIX*ocsms_smsdatas WHERE user_id = ?'); + $result = $query->execute(array($userId)); + + if ($row = $result->fetchRow()) { + return $row["mx"]; + } + + return 0; + } + public function getAllPeersPhoneNumbers ($userId) { $query = \OCP\DB::prepare('SELECT sms_address FROM ' . '*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_mailbox IN (?,?)'); @@ -144,7 +156,7 @@ class SmsMapper extends Mapper { '*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_address = ? ' . 'AND sms_mailbox IN (?,?)'); - foreach( $phlst as $pn => $val) { + foreach($phlst as $pn => $val) { $result = $query->execute(array($userId, $pn, 0, 1)); if ($row = $result->fetchRow()) $cnt += $row["ct"];