diff --git a/api.php b/api.php new file mode 100644 index 0000000..e7c3c0b --- /dev/null +++ b/api.php @@ -0,0 +1,116 @@ +query("SELECT * FROM assigned_tasks LEFT JOIN tasks ON assigned_tasks.taskid = tasks.taskid WHERE assigned_tasks.userid = '" . $userinfo['uid'] . "' AND assigned_tasks.statusid IN (0,1,3,4) AND taskassignedon <= NOW() AND tasks.deleted = 0 ORDER BY 0 - taskdueby DESC LIMIT $max")->fetchAll(); + $out = ["status" => "OK", "maxresults" => $max, "tasks" => []]; + foreach ($tasks as $task) { + $icon = "ellipsis-h"; + switch ($task['statusid']) { + case 1: + $icon = "play"; + break; + case 2: + $icon = "check"; + break; + case 3: + $icon = "pause"; + break; + case 4: + $icon = "exclamation"; + break; + } + $out['tasks'][] = [ + "title" => $task['tasktitle'], + "description" => $task['taskdesc'], + "assigned" => date("F j, Y, g:i a", strtotime($task['taskassignedon'])), + "due" => ($task['taskdueby'] > 0 ? date("F j, Y, g:i a", strtotime($task['taskdueby'])) : null), + "status" => $task['statusid'], + "icon" => $icon + ]; + } + exit(json_encode($out)); + case "getmsgs": + $messages = $database->select( + 'messages', [ + 'messageid (id)', + 'messagetext (text)', + 'messagedate (date)', + 'to', + 'from' + ], [ + "AND" => [ + "OR" => [ + "to" => $userinfo['uid'], + "to" => null, + "from" => $userinfo['uid'] + ], + "deleted" => 0 + ], + "ORDER" => [ + "messagedate" => "DESC" + ], + "LIMIT" => $max] + ); + + $out = ["status" => "OK", "maxresults" => $max, "messages" => []]; + $usercache = []; + foreach ($messages as $msg) { + $to = null; + if (!isset($usercache[$msg['from']])) { + $usercache[$msg['from']] = getUserByID($msg['from']); + } + if (is_null($msg['to'])) { + $to['name'] = lang("all users", false); + $to['username'] = lang("all users", false); + } else { + if (!isset($usercache[$msg['to']])) { + $usercache[$msg['to']] = getUserByID($msg['to']); + } + $to = $usercache[$msg['to']]; + } + + $out['messages'][$msg['id']] = [ + "text" => $msg['text'], + "from" => [ + "username" => $usercache[$msg['from']]['username'], + "name" => $usercache[$msg['from']]['name'] + ], + "to" => [ + "username" => $to['username'], + "name" => $to['name'] + ], + "sent" => date("F j, Y, g:i a", strtotime($msg['date'])) + ]; + } + exit(json_encode($out)); + default: + header("HTTP/1.1 400 Bad Request"); + die("\"400 Bad Request\""); +} \ No newline at end of file