Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/ocsms.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2015-04-08 16:07:22 +0300
committerLoic Blot <loic.blot@unix-experience.fr>2015-04-08 16:07:22 +0300
commit040185cc215026a7c5c1a37d5741cf441ea613e3 (patch)
tree55f09907b3ec71713472636251520618d3ceea01 /controller
parent9fbeddfa9b2315d0fbf32cfd11b1b7497aeb8e10 (diff)
Split smscontroller into smscontroller and apicontroller. One for webapp, one for API
Diffstat (limited to 'controller')
-rw-r--r--controller/apicontroller.php166
-rw-r--r--controller/smscontroller.php121
2 files changed, 166 insertions, 121 deletions
diff --git a/controller/apicontroller.php b/controller/apicontroller.php
new file mode 100644
index 0000000..a893e31
--- /dev/null
+++ b/controller/apicontroller.php
@@ -0,0 +1,166 @@
+<?php
+/**
+ * ownCloud - ocsms
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Loic Blot <loic.blot@unix-experience.fr>
+ * @copyright Loic Blot 2014-2015
+ */
+
+namespace OCA\OcSms\Controller;
+
+
+use \OCP\IRequest;
+use \OCP\AppFramework\Controller;
+use \OCP\AppFramework\Http\JSONResponse;
+
+use \OCA\OcSms\AppInfo\OcSmsApp;
+
+use \OCA\OcSms\Db\SmsMapper;
+
+class ApiController extends Controller {
+
+ private $app;
+ private $userId;
+ private $smsMapper;
+ private $errorMsg;
+
+ public function __construct ($appName, IRequest $request, $userId, SmsMapper $mapper, OcSmsApp $app) {
+ parent::__construct($appName, $request);
+ $this->app = $app;
+ $this->userId = $userId;
+ $this->smsMapper = $mapper;
+ }
+
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function getApiVersion () {
+ return new JSONResponse(array("version" => 1));
+ }
+
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ *
+ * This function is used by API v1
+ * Phone will compare its own message list with this
+ * message list and send the missing messages
+ * This call will remain as secure slow sync mode (1 per hour)
+ */
+ public function retrieveAllIds () {
+ $smsList = $this->smsMapper->getAllIds($this->userId);
+ 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
+ */
+ public function retrieveAllIdsWithStatus () {
+ $smsList = $this->smsMapper->getAllIdsWithStatus($this->userId);
+ return new JSONResponse(array("smslist" => $smsList));
+ }
+
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function getPhonesSmsNumber () {
+ $phoneList = array();
+ return new JSONResponse(array("phoneList" => $phoneList));
+ }
+
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function push ($smsCount, $smsDatas) {
+ if ($this->checkPushStructure($smsCount, $smsDatas, true) === false) {
+ return new JSONResponse(array("status" => false, "msg" => $this->errorMsg));
+ }
+
+ $this->smsMapper->writeToDB($this->userId, $smsDatas);
+ return new JSONResponse(array("status" => true, "msg" => "OK"));
+ }
+
+ /**
+ * @NoAdminRequired
+ */
+ public function replace($smsCount, $smsDatas) {
+ if ($this->checkPushStructure($smsCount, $smsDatas, true) === false) {
+ return new JSONResponse(array("status" => false, "msg" => $this->errorMsg));
+ }
+
+ $this->smsMapper->writeToDB($this->userId, $smsDatas, true);
+ return new JSONResponse(array("status" => true, "msg" => "OK"));
+ }
+
+ private function checkPushStructure ($smsCount, $smsDatas) {
+ if ($smsCount != count($smsDatas)) {
+ $this->errorMsg = "Error: sms count invalid";
+ return false;
+ }
+
+ foreach ($smsDatas as &$sms) {
+ if (!array_key_exists("_id", $sms) || !array_key_exists("read", $sms) ||
+ !array_key_exists("date", $sms) || !array_key_exists("seen", $sms) ||
+ !array_key_exists("mbox", $sms) || !array_key_exists("type", $sms) ||
+ !array_key_exists("body", $sms) || !array_key_exists("address", $sms)) {
+ $this->errorMsg = "Error: bad SMS entry";
+ return false;
+ }
+
+ if (!is_numeric($sms["_id"])) {
+ $this->errorMsg = sprintf("Error: Invalid SMS ID '%s'", $sms["_id"]);
+ return false;
+ }
+
+ if (!is_numeric($sms["type"])) {
+ $this->errorMsg = sprintf("Error: Invalid SMS type '%s'", $sms["type"]);
+ return false;
+ }
+
+ if (!is_numeric($sms["mbox"]) && $sms["mbox"] != 0 && $sms["mbox"] != 1 &&
+ $sms["mbox"] != 2) {
+ $this->errorMsg = sprintf("Error: Invalid Mailbox ID '%s'", $sms["mbox"]);
+ return false;
+ }
+
+ if ($sms["read"] !== "true" && $sms["read"] !== "false") {
+ $this->errorMsg = sprintf("Error: Invalid SMS Read state '%s'", $sms["read"]);
+ return false;
+ }
+
+ if ($sms["seen"] !== "true" && $sms["seen"] !== "false") {
+ $this->errorMsg = "Error: Invalid SMS Seen state";
+ return false;
+ }
+
+ if (!is_numeric($sms["date"]) && $sms["date"] != 0 && $sms["date"] != 1) {
+ $this->errorMsg = "Error: Invalid SMS date";
+ return false;
+ }
+
+ // @ TODO: test address and body ?
+ }
+ return true;
+ }
+}
diff --git a/controller/smscontroller.php b/controller/smscontroller.php
index 4fce87c..3ad942e 100644
--- a/controller/smscontroller.php
+++ b/controller/smscontroller.php
@@ -71,51 +71,6 @@ class SmsController extends Controller {
* @NoAdminRequired
* @NoCSRFRequired
*/
- public function getApiVersion () {
- return new JSONResponse(array("version" => 1));
- }
-
- /**
- * @NoAdminRequired
- * @NoCSRFRequired
- *
- * This function is used by API v1
- * Phone will compare its own message list with this
- * message list and send the missing messages
- * This call will remain as secure slow sync mode (1 per hour)
- */
- public function retrieveAllIds () {
- $smsList = $this->smsMapper->getAllIds($this->userId);
- 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
- */
- public function retrieveAllIdsWithStatus () {
- $smsList = $this->smsMapper->getAllIdsWithStatus($this->userId);
- return new JSONResponse(array("smslist" => $smsList));
- }
-
- /**
- * @NoAdminRequired
- * @NoCSRFRequired
- */
public function retrieveAllPeers () {
$phoneList = $this->smsMapper->getLastMessageTimestampForAllPhonesNumbers($this->userId);
$contactsSrc = $this->app->getContacts();
@@ -232,82 +187,6 @@ class SmsController extends Controller {
/**
* @NoAdminRequired
- * @NoCSRFRequired
- */
- public function push ($smsCount, $smsDatas) {
- if ($this->checkPushStructure($smsCount, $smsDatas, true) === false) {
- return new JSONResponse(array("status" => false, "msg" => $this->errorMsg));
- }
-
- $this->smsMapper->writeToDB($this->userId, $smsDatas);
- return new JSONResponse(array("status" => true, "msg" => "OK"));
- }
-
- /**
- * @NoAdminRequired
- */
- public function replace($smsCount, $smsDatas) {
- if ($this->checkPushStructure($smsCount, $smsDatas, true) === false) {
- return new JSONResponse(array("status" => false, "msg" => $this->errorMsg));
- }
-
- $this->smsMapper->writeToDB($this->userId, $smsDatas, true);
- return new JSONResponse(array("status" => true, "msg" => "OK"));
- }
-
- private function checkPushStructure ($smsCount, $smsDatas) {
- if ($smsCount != count($smsDatas)) {
- $this->errorMsg = "Error: sms count invalid";
- return false;
- }
-
- foreach ($smsDatas as &$sms) {
- if (!array_key_exists("_id", $sms) || !array_key_exists("read", $sms) ||
- !array_key_exists("date", $sms) || !array_key_exists("seen", $sms) ||
- !array_key_exists("mbox", $sms) || !array_key_exists("type", $sms) ||
- !array_key_exists("body", $sms) || !array_key_exists("address", $sms)) {
- $this->errorMsg = "Error: bad SMS entry";
- return false;
- }
-
- if (!is_numeric($sms["_id"])) {
- $this->errorMsg = sprintf("Error: Invalid SMS ID '%s'", $sms["_id"]);
- return false;
- }
-
- if (!is_numeric($sms["type"])) {
- $this->errorMsg = sprintf("Error: Invalid SMS type '%s'", $sms["type"]);
- return false;
- }
-
- if (!is_numeric($sms["mbox"]) && $sms["mbox"] != 0 && $sms["mbox"] != 1 &&
- $sms["mbox"] != 2) {
- $this->errorMsg = sprintf("Error: Invalid Mailbox ID '%s'", $sms["mbox"]);
- return false;
- }
-
- if ($sms["read"] !== "true" && $sms["read"] !== "false") {
- $this->errorMsg = sprintf("Error: Invalid SMS Read state '%s'", $sms["read"]);
- return false;
- }
-
- if ($sms["seen"] !== "true" && $sms["seen"] !== "false") {
- $this->errorMsg = "Error: Invalid SMS Seen state";
- return false;
- }
-
- if (!is_numeric($sms["date"]) && $sms["date"] != 0 && $sms["date"] != 1) {
- $this->errorMsg = "Error: Invalid SMS date";
- return false;
- }
-
- // @ TODO: test address and body ?
- }
- return true;
- }
-
- /**
- * @NoAdminRequired
*/
function setCountry($country) {
if (!array_key_exists($country, CountryCodes::$codes)) {