diff --git a/appinfo/info.xml b/appinfo/info.xml index 8dc1fe9..df8c8e5 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -5,6 +5,6 @@ Owncloud SMS app AGPL Loic Blot - 0.1.8 + 0.2.0 7 diff --git a/appinfo/routes.php b/appinfo/routes.php index a8fcf38..98c3811 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -19,4 +19,5 @@ $application->registerRoutes($this, array('routes' => array( array('name' => 'sms#replace', 'url' => '/replace', 'verb' => 'POST'), array('name' => 'sms#retrieve_all_ids', 'url' => '/get/smsidlist', 'verb' => 'GET'), array('name' => 'sms#retrieve_all_peers', 'url' => '/get/peerlist', 'verb' => 'GET'), + array('name' => 'sms#get_conversation', 'url' => '/get/conversation', 'verb' => 'GET'), ))); diff --git a/controller/smscontroller.php b/controller/smscontroller.php index fb342b4..415ec64 100644 --- a/controller/smscontroller.php +++ b/controller/smscontroller.php @@ -72,6 +72,16 @@ class SmsController extends Controller { return new JSONResponse(array("phonelist" => $phoneList)); } + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function getConversation ($phoneNumber) { + $messages = $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $phoneNumber); + // @ TODO: filter correctly + return new JSONResponse(array("conversation" => $messages)); + } + /** * @NoAdminRequired */ diff --git a/db/smsmapper.php b/db/smsmapper.php index ff14a1a..dcae4ab 100644 --- a/db/smsmapper.php +++ b/db/smsmapper.php @@ -21,6 +21,12 @@ class SmsMapper extends Mapper { * on which mailbox it works */ private static $mailboxNames = array(0 => "inbox", 1 => "sent", 2 => "drafts"); + private static $messageTypes = array( + 0 => "all", 1 => "inbox", + 2 => "sent", 3 => "drafts", + 4 => "outbox", 5 => "failed", + 6 => "queued" + ); public function __construct (IDb $db) { parent::__construct($db, 'ocsms_smsdatas'); @@ -59,6 +65,19 @@ class SmsMapper extends Mapper { return $phoneList; } + public function getAllMessagesForPhoneNumber ($userId, $phoneNumber) { + $query = \OC_DB::prepare('SELECT sms_date, sms_msg, sms_type FROM ' . + '*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_mailbox IN (?,?)'); + $result = $query->execute(array($userId, 0, 1)); + + $messageList = array(); + while($row = $result->fetchRow()) { + array_push($messageList[$row["sms_date"]], $row); + } + sort($messageList); + return $messageList; + } + public function writeToDB ($userId, $smsList, $purgeAllSmsBeforeInsert = false) { \OCP\DB::beginTransaction();