From 78eae0600c1ab1efd3799a40fb635063b801f1fe Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Thu, 21 Jul 2016 23:31:52 +0200 Subject: [PATCH] Add a new call to get the current message count for a user --- appinfo/routes.php | 1 + controller/apicontroller.php | 15 +++++++++++++-- db/smsmapper.php | 11 +++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/appinfo/routes.php b/appinfo/routes.php index 837dc47..9824478 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -36,6 +36,7 @@ $application->registerRoutes($this, array('routes' => array( // API v2 array('name' => 'api#get_all_stored_phone_numbers', 'url' => '/api/v2/phones/list', 'verb' => 'GET'), // Android APIv2 array('name' => 'api#fetch_messages', 'url' => '/api/v2/messages/{start}/{limit}', 'verb' => 'GET'), // Android APIv2 + array('name' => 'api#fetch_messages_count', 'url' => '/api/v2/messages/count', 'verb' => 'GET'), // Android APIv2 array('name' => 'api#fetch_messages_for_number', 'url' => '/api/v2/messages/{phonenumber}/{start}/{limit}', 'verb' => 'GET'), // Android APIv2 array('name' => 'api#fetch_messages_to_send', 'url' => '/api/v2/messages/sendqueue', 'verb' => 'GET'), // Android APIv2 diff --git a/controller/apicontroller.php b/controller/apicontroller.php index 1bd5e6a..ab040ce 100644 --- a/controller/apicontroller.php +++ b/controller/apicontroller.php @@ -165,6 +165,18 @@ class ApiController extends Controller { return new JSONResponse(array("phoneList" => $phoneList)); } + /** + * @NoAdminRequired + * @NoCSRFRequired + * + * APIv2 + * @param $start + * @param $limit + * @return JSONResponse + */ + public function fetchMessagesCount() { + return new JSONResponse(array("count" => $this->smsMapper->getMessageCount($this->userId))); + } /** * @NoAdminRequired * @NoCSRFRequired @@ -184,8 +196,7 @@ class ApiController extends Controller { return new JSONResponse(array("msg" => "Too many messages requested"), 413); } - $messages = $this->smsMapper->getMessages($this->userId, $start, $limit); - return new JSONResponse(array("messages" => $messages)); + return new JSONResponse(array("messages" => $this->smsMapper->getMessages($this->userId, $start, $limit))); } /** diff --git a/db/smsmapper.php b/db/smsmapper.php index 7854c67..5fb69ef 100644 --- a/db/smsmapper.php +++ b/db/smsmapper.php @@ -134,6 +134,17 @@ class SmsMapper extends Mapper { return $messageList; } + public function getMessageCount ($userId) { + $query = \OCP\DB::prepare('SELECT count(*) AS count FROM ' . + '*PREFIX*ocsms_smsdatas WHERE user_id = ?'); + $result = $query->execute(array($userId)); + if ($row = $result->fetchRow()) { + return $row["count"]; + } + + return 0; + } + public function getMessages ($userId, $start, $limit) { $messageList = array();