TaskwarriorPlugin/src/Taskwarrior/TaskwarriorManager.php
2018-11-25 18:41:20 -06:00

163 lines
3.2 KiB
PHP

<?php
namespace Aerex\TaskwarriorPlugin\Taskwarrior;
use Aerex\TaskwarriorPlugin\Taskwarrior\Taskwarrior;
use Aerex\TaskwarriorPlugin\Taskwarrior\Task;
use Sabre\VObject\Component\VTodo;
class TaskwarriorManager {
const DESCRIPTION = 'description';
const CATEGORIES = 'categories';
const TASK_UUID = 'uuid';
const ICAL_UID = 'uid';
private $tasks;
const ENTRY = 'entry';
const START = 'start';
const MODIFIED = 'modified';
const END = 'end';
public function __construct($taskwarrior){
if(!isset($taskwarrior)){
$this->taskwarrior = new Taskwarrior();
} else {
$this->taskwarrior = $taskwarrior;
}
}
public function createTask($UUID){
$task = new Task();
}
public function export(VTodo $document){
}
public function addTask(VTodo $document){
$task = $this->taskwarrior->createTask($document->UID);
$task->setDescription($document);
$task->setEntry($document);
$task->setStartTime($document);
$task->setModifiedTime($document);
$task->setStopTime($document);
$task->setDue($document);
$task->setCategories($document);
$task->setStatus($document);
$task->setRecurrence($document);
return $this->taskwarrior->add($task);
}
public function updateTask(VTodo $document){
$task = $this->taskwarrior->get($document->UID);
$task->setDescription($document);
$task->setEntry($document);
$task->setStartTime($document);
$task->setModifiedTime($document);
$task->setStopTime($document);
$task->setDue($document);
$task->setCategories($document);
$task->setStatus($document);
$task->setRecurrence($document);
$updatedTask = $this->taskwarrior->modify($task);
return $upatedTask;
}
function setEntryTime($entry){
}
function exists($UUID){}
function setEndTime($end){}
function setModifiedTime($modifiedTime){}
function setSummary($description){
if(!isset($description)){
return;
}
$this->taskWarriorJSON[self::DESCRIPTION] = $description;
}
function setStartTime($startTime){}
function setCategories($categories){
if(!isset($categories)){
return;
}
if(!is_array($catergories)){
return;
}
$this->taskWarriorJSON[self::CATEGORIES] = $categories;
}
public function taskExists($taskUuid){
$taskIsInCache = isset($this->cachedTasks[$taskUuid]);
if($taskIsInCache){
return true;
}
$jsonArray = $this->taskwarrior->export($taskUuid);
$taskWithUuidExists = count($jsonArray) > 0;
return $taskWithUuidExists;
}
public function save(){
}
public function build(){
}
/**
* @param Task $task
* @param string $attr
* @param mixed $value
*/
public function setValue(Task $task, $attr, $value)
{
$refClass = new \ReflectionClass(Task::class);
$refProp = $refClass->getProperty($attr);
$refProp->setAccessible(true);
$refProp->setValue($task, $value);
}
function setDescription($description){}
function parseiCalDateTime($iCalDateTime){}
function convertToStringArray($categories){}
}
?>