From 52fe3c44c4b354477fd749233a475e094d940f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot=20=28=40U-Exp=29?= Date: Fri, 12 Sep 2014 17:12:49 +0200 Subject: [PATCH] Because there is a bug on boolean recognition in PHP, we are using string octal representation for flags --- appinfo/database.xml | 16 ++++------------ appinfo/info.xml | 2 +- controller/smscontroller.php | 3 --- db/smsmapper.php | 17 +++++++++++------ 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/appinfo/database.xml b/appinfo/database.xml index 860adc1..4dcaa38 100644 --- a/appinfo/database.xml +++ b/appinfo/database.xml @@ -52,16 +52,6 @@ text true - - sms_read - boolean - true - - - sms_seen - boolean - true - sms_date integer @@ -69,9 +59,11 @@ 10 - sms_draft - boolean + sms_flags + text true + 000 + 3 diff --git a/appinfo/info.xml b/appinfo/info.xml index 599b4de..8ed99a9 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -5,6 +5,6 @@ Owncloud SMS app AGPL Loic Blot - 0.1.0 + 0.1.2 7 diff --git a/controller/smscontroller.php b/controller/smscontroller.php index 54fbc76..1ccdea7 100644 --- a/controller/smscontroller.php +++ b/controller/smscontroller.php @@ -85,9 +85,6 @@ class SmsController extends Controller { $this->errorMsg = "Error: Invalid SMS Draft state"; return false; } - else { - $sms["draft"] == $sms["draft"] === true; - } if (!is_numeric($sms["date"]) && $sms["date"] != 0 && $sms["date"] != 1) { $this->errorMsg = "Error: Invalid SMS date"; diff --git a/db/smsmapper.php b/db/smsmapper.php index 8590488..ef19c15 100644 --- a/db/smsmapper.php +++ b/db/smsmapper.php @@ -23,14 +23,19 @@ class SmsMapper extends Mapper { // @TODO public function saveAll($userId, $smsList) { foreach ($smsList as $sms) { + $smsFlags = sprintf("%s%s%s", + $sms["read"] === "true" ? "1" : "0", + $sms["seen"] === "true" ? "1" : "0", + $sms["draft"] === "true" ? "1" : "0" + ); + $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 ' . - '(?,?,?,?,?,?,?,?,?,?)'); + '(user_id, added, lastmodified, sms_flags, sms_date, sms_id,' . + 'sms_address, sms_msg) VALUES ' . + '(?,?,?,?,?,?,?,?)'); $result = $query->execute(array( - $userId, "NOW()", "NOW()", - $sms["read"] === "true", $sms["seen"] === "true", - (int) $sms["date"], $sms["draft"], (int) $sms["id"], + $userId, "NOW()", "NOW()", $smsFlags, + (int) $sms["date"], (int) $sms["id"], $sms["address"], $sms["body"] )); }