* @copyright Loic Blot 2014 */ namespace OCA\OcSms\Db; use \OCP\IDb; use \OCP\AppFramework\Db\Mapper; class SmsMapper extends Mapper { public function __construct(IDb $db) { parent::__construct($db, 'ocsms_smsdatas'); } public function writeToDB($userId, $smsList, $purgeBeforeInsert = false) { \OCP\DB::beginTransaction(); if ($purgeBeforeInsert === true) { $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ocsms_smsdatas ' . 'WHERE user_id = ?'); $result = $query->execute(array($userId)); } foreach ($smsList as $sms) { $smsFlags = sprintf("%s%s", $sms["read"] === "true" ? "1" : "0", $sms["seen"] === "true" ? "1" : "0" ); $query = \OCP\DB::prepare('INSERT INTO *PREFIX*ocsms_smsdatas ' . '(user_id, added, lastmodified, sms_flags, sms_date, sms_id,' . 'sms_address, sms_msg, sms_mailbox, sms_type) VALUES ' . '(?,?,?,?,?,?,?,?,?,?)'); $result = $query->execute(array( $userId, "NOW()", "NOW()", $smsFlags, (int) $sms["date"], (int) $sms["_id"], $sms["address"], $sms["body"], (int) $sms["mbox"], (int) $sms["type"] )); } \OCP\DB::commit(); } public function find($id) { $sql = 'SELECT * FROM `*PREFIX*ocsms_smsdatas` ' . 'WHERE `id` = ?'; $query = $db->prepareQuery($sql); $query->bindParam(1, $id, \PDO::PARAM_INT); $result = $query->execute(); while($row = $result->fetchRow()) { return $row; } } } ?>