1
0
mirror of https://github.com/nerzhul/ocsms.git synced 2025-06-07 07:56:23 +00:00

Use mapper properly on controller. Need tests

This commit is contained in:
Loïc Blot (@U-Exp) 2014-09-12 16:31:08 +02:00
parent 43d122a6b8
commit b853362683
3 changed files with 35 additions and 17 deletions

View File

@ -35,7 +35,8 @@ class Application extends App {
return new SmsController(
$c->query('AppName'),
$c->query('Request'),
$c->query('UserId')
$c->query('UserId'),
$c->query('SmsMapper')
);
});

View File

@ -15,15 +15,19 @@ namespace OCA\OcSms\Controller;
use \OCP\IRequest;
use \OCP\AppFramework\Http\TemplateResponse;
use \OCP\AppFramework\Controller;
use OCA\OcSms\Db\SmsMapper;
use \OCA\MyApp\Db\SmsMapper;
class SmsController extends Controller {
private $userId;
private $smsMapper;
// TMP
private $errorMsg;
public function __construct($appName, IRequest $request, $userId){
public function __construct($appName, IRequest $request, $userId, SmsMapper $mapper){
parent::__construct($appName, $request);
$this->userId = $userId;
$this->smsMapper = $mapper;
}
/**
@ -39,8 +43,18 @@ class SmsController extends Controller {
* @NoAdminRequired
*/
public function push ($smsCount, $smsDatas) {
if ($this->checkPushStructure($smsCount, $smsDatas) === false) {
return $this->errorMsg;
}
$smsMapper->saveAll($this->userId, $smsDatas);
return "OK";
}
private function checkPushStructure($smsCount, $smsDatas) {
if ($smsCount != count($smsDatas)) {
return "Error: sms count invalid";
$this->errorMsg = "Error: sms count invalid";
return false;
}
foreach ($smsDatas as $sms) {
@ -48,35 +62,38 @@ class SmsController extends Controller {
!array_key_exists("draft", $sms) ||
!array_key_exists("date", $sms) || !array_key_exists("seen", $sms) ||
!array_key_exists("body", $sms) || !array_key_exists("address", $sms)) {
return "Error: bad SMS entry";
$this->errorMsg = "Error: bad SMS entry";
return false;
}
if (!is_numeric($sms["id"])) {
return "Error: Invalid SMS ID";
$this->errorMsg = "Error: Invalid SMS ID";
return false;
}
if ($sms["read"] !== "true" && $sms["read"] !== "false") {
return "Error: Invalid SMS Read state";
$this->errorMsg = "Error: Invalid SMS Read state";
return false;
}
if ($sms["seen"] !== "true" && $sms["seen"] !== "false") {
return "Error: Invalid SMS Seen state";
$this->errorMsg = "Error: Invalid SMS Seen state";
return false;
}
if ($sms["draft"] !== "true" && $sms["draft"] !== "false") {
return "Error: Invalid SMS Draft state";
$this->errorMsg = "Error: Invalid SMS Draft state";
return false;
}
if (!is_numeric($sms["date"]) && $sms["date"] != 0 && $sms["date"] != 1) {
return "Error: Invalid SMS date";
$this->errorMsg = "Error: Invalid SMS date";
return false;
}
// @ TODO: test address and body ?
}
$smsMgr = new SmsMapper();
$smsMgr->saveAll($smsDAtas);
return "OK";
return true;
}

View File

@ -21,16 +21,16 @@ class SmsMapper extends Mapper {
}
// @TODO
public function saveAll($smsList) {
public function saveAll($userId, $smsList) {
foreach ($smsList as $sms) {
$query = \OC_DB::prepare('INSERT INTO *PREFIX*ocsms_smsdatas ' .
'(user_id, added, lastmodified, sms_read, sms_seen, sms_date,' .
'sms_draft, sms_id, sms_address, sms_msg) VALUES ' .
'(?,?,?,?,?,?,?,?,?,?)');
$result = $query->execute(array(
\OCP\User::getUser(),"NOW()","NOW()",
$userId, "NOW()", "NOW()",
$sms["read"] === "true", $sms["seen"] === "true",
$sms["date"], $sms["draft"] === "true", $sms["id"],
(int) $sms["date"], $sms["draft"] === "true", $sms["id"],
$sms["address"], $sms["body"]
));
}