From 4827856fe2d1c3b155ccb89886075be9c7389d82 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Sat, 30 Jan 2016 23:00:05 +0100 Subject: [PATCH] Move settings from smscontroller to dedicated controller --- appinfo/ocsmsapp.php | 10 +++++ appinfo/routes.php | 7 ++-- controller/settingscontroller.php | 70 +++++++++++++++++++++++++++++++ controller/smscontroller.php | 34 --------------- 4 files changed, 84 insertions(+), 37 deletions(-) create mode 100644 controller/settingscontroller.php diff --git a/appinfo/ocsmsapp.php b/appinfo/ocsmsapp.php index bd14924..b4d42cd 100644 --- a/appinfo/ocsmsapp.php +++ b/appinfo/ocsmsapp.php @@ -16,6 +16,7 @@ namespace OCA\OcSms\AppInfo; use \OCP\AppFramework\App; use \OCA\OcSms\Controller\ApiController; +use \OCA\OcSms\Controller\SettingsController; use \OCA\OcSms\Controller\SmsController; use \OCA\OcSms\Db\Sms; @@ -72,6 +73,15 @@ class OcSmsApp extends App { /** * Controllers */ + $container->registerService('SettingsController', function($c) use($app) { + return new SettingsController( + $c->query('AppName'), + $c->query('Request'), + $c->query('ConfigMapper'), + $app + ); + }); + $container->registerService('SmsController', function($c) use($app) { return new SmsController( $c->query('AppName'), diff --git a/appinfo/routes.php b/appinfo/routes.php index 331da0a..e5eaae1 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -20,9 +20,10 @@ $application->registerRoutes($this, array('routes' => array( array('name' => 'sms#delete_conversation', 'url' => '/delete/conversation', 'verb' => 'POST'), array('name' => 'sms#check_new_messages', 'url' => '/get/new_messages', 'verb' => 'GET'), array('name' => 'sms#delete_message', 'url' => '/delete/message', 'verb' => 'POST'), - array('name' => 'sms#set_country', 'url'=> '/set/country', 'verb' => 'POST'), - array('name' => 'sms#get_settings', 'url'=> '/get/settings', 'verb' => 'GET'), - array('name' => 'sms#set_messagelimit', 'url'=> '/set/msglimit', 'verb' => 'POST'), + + array('name' => 'settings#set_country', 'url'=> '/set/country', 'verb' => 'POST'), + array('name' => 'settings#get_settings', 'url'=> '/get/settings', 'verb' => 'GET'), + array('name' => 'settings#set_messagelimit', 'url'=> '/set/msglimit', 'verb' => 'POST'), array('name' => 'api#get_api_version', 'url' => '/get/apiversion', 'verb' => 'GET'), // Android APIv1 array('name' => 'api#push', 'url' => '/push', 'verb' => 'POST'), // Android API diff --git a/controller/settingscontroller.php b/controller/settingscontroller.php new file mode 100644 index 0000000..c861765 --- /dev/null +++ b/controller/settingscontroller.php @@ -0,0 +1,70 @@ + + * @copyright Loic Blot 2014-2016 + */ + +namespace OCA\OcSms\Controller; + + +use \OCP\IRequest; +use \OCP\AppFramework\Controller; +use \OCP\AppFramework\Http\JSONResponse; +use \OCP\AppFramework\Http; + +use \OCA\OcSms\AppInfo\OcSmsApp; + +use \OCA\OcSms\Db\ConfigMapper; + +use \OCA\OcSms\Lib\CountryCodes; + +class SettingsController extends Controller { + + private $app; + private $configMapper; + + public function __construct ($appName, IRequest $request, ConfigMapper $cfgMapper, OcSmsApp $app){ + parent::__construct($appName, $request); + $this->app = $app; + $this->configMapper = $cfgMapper; + } + + /** + * @NoAdminRequired + */ + function setCountry($country) { + if (!array_key_exists($country, CountryCodes::$codes)) { + return new JSONResponse(array("status" => false, "msg" => "Invalid country")); + } + $this->configMapper->set("country", $country); + return new JSONResponse(array("status" => true, "msg" => "OK")); + } + + /** + * @NoAdminRequired + */ + function getSettings() { + $country = $this->configMapper->getKey("country"); + if ($country === false) { + return new JSONResponse(array("status" => false)); + } + $message_limit = $this->configMapper->getKey("message_limit"); + return new JSONResponse(array("status" => true, + "country" => $country, + "message_limit" => $message_limit)); + } + + /** + * @NoAdminRequired + */ + function setMessageLimit($limit) { + $this->configMapper->set("message_limit", $limit); + return new JSONResponse(array("status" => true, "msg" => "OK")); + } + +} diff --git a/controller/smscontroller.php b/controller/smscontroller.php index 3edc76b..a1ce2a3 100644 --- a/controller/smscontroller.php +++ b/controller/smscontroller.php @@ -227,38 +227,4 @@ class SmsController extends Controller { $this->smsMapper->removeMessage($this->userId, $phoneNumber, $messageId); return new JSONResponse(array()); } - - /** - * @NoAdminRequired - */ - function setCountry($country) { - if (!array_key_exists($country, CountryCodes::$codes)) { - return new JSONResponse(array("status" => false, "msg" => "Invalid country")); - } - $this->configMapper->set("country", $country); - return new JSONResponse(array("status" => true, "msg" => "OK")); - } - - /** - * @NoAdminRequired - */ - function getSettings() { - $country = $this->configMapper->getKey("country"); - if ($country === false) { - return new JSONResponse(array("status" => false)); - } - $message_limit = $this->configMapper->getKey("message_limit"); - return new JSONResponse(array("status" => true, - "country" => $country, - "message_limit" => $message_limit)); - } - - /** - * @NoAdminRequired - */ - function setMessageLimit($limit) { - $this->configMapper->set("message_limit", $limit); - return new JSONResponse(array("status" => true, "msg" => "OK")); - } - }