107 lines
3.0 KiB
PHP
107 lines
3.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* ownCloud - Tasks
|
|
*
|
|
* @author Raimund Schlüßler
|
|
* @copyright 2013 Raimund Schlüßler raimund.schluessler@googlemail.com
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
namespace OCA\Tasks_enhanced\Db;
|
|
|
|
use \OCA\AppFramework\Core\API;
|
|
use \OCA\AppFramework\Db\Mapper;
|
|
use \OCA\AppFramework\Db\Entity;
|
|
|
|
class TasksMapper extends Mapper implements IMapper {
|
|
|
|
public function __construct(API $api) {
|
|
parent::__construct($api, 'tasks');
|
|
}
|
|
|
|
public function find($id, $userId){
|
|
// $sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
|
|
// 'WHERE `id` = ? ' .
|
|
// 'AND `user_id` = ?';
|
|
|
|
// $row = $this->findOneQuery($sql, array($id, $userId));
|
|
// $folder = new Folder();
|
|
// $folder->fromRow($row);
|
|
|
|
// return $folder;
|
|
}
|
|
|
|
public function getAllTasks($userId){
|
|
$calendars = $this->api->getAllCalendars($userId);
|
|
$user_timezone = $this->api->getTimezone($userId);
|
|
|
|
$tasks = array();
|
|
foreach( $calendars as $calendar ) {
|
|
$calendar_tasks = $this->api->getAllTasks($calendar['id']);
|
|
foreach( $calendar_tasks as $task ) {
|
|
if($task['objecttype']!='VTODO') {
|
|
continue;
|
|
}
|
|
if(is_null($task['summary'])) {
|
|
continue;
|
|
}
|
|
$vtodo = $this->api->parseVTODO($task['calendardata']);
|
|
try {
|
|
$task_data = $this->api->arrayForJSON($task['id'], $vtodo, $user_timezone);
|
|
$task_data['calendarid'] = $calendar['id'];
|
|
$tasks[] = $task_data;
|
|
} catch(\Exception $e) {
|
|
\OCP\Util::writeLog('tasks_enhanced', $e->getMessage(), \OCP\Util::ERROR);
|
|
}
|
|
}
|
|
}
|
|
return $tasks;
|
|
}
|
|
|
|
public function getInitialTasks($userId){
|
|
$calendars = $this->api->getAllCalendars($userId);
|
|
$user_timezone = $this->api->getTimezone($userId);
|
|
|
|
$tasks = array();
|
|
foreach( $calendars as $calendar ) {
|
|
$calendar_tasks = $this->api->getAllTasks($calendar['id']);
|
|
foreach( $calendar_tasks as $task ) {
|
|
if($task['objecttype']!='VTODO') {
|
|
continue;
|
|
}
|
|
if(is_null($task['summary'])) {
|
|
continue;
|
|
}
|
|
$vtodo = $this->api->parseVTODO($task['calendardata']);
|
|
if(!$vtodo->COMPLETED){
|
|
try {
|
|
$task_data = $this->api->arrayForJSON($task['id'], $vtodo, $user_timezone);
|
|
$task_data['calendarid'] = $calendar['id'];
|
|
$tasks[] = $task_data;
|
|
} catch(\Exception $e) {
|
|
\OCP\Util::writeLog('tasks_enhanced', $e->getMessage(), \OCP\Util::ERROR);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return $tasks;
|
|
}
|
|
|
|
public function findByID($taskID){
|
|
return $this->api->getVCalendar($taskID);
|
|
}
|
|
} |