rosavox/source/main.php

91 lines
1.3 KiB
PHP
Raw Permalink Normal View History

<?php
namespace rosavox;
require_once('entities/doc.php');
require_once('services/doc.php');
require_once('nav.php');
require_once('renderings.php');
/**
*/
function main(array $get, array $post) : void
{
// init
\rosavox\services\doc\init();
// args
$mode = (
$get['mode']
??
'list'
);
$id = (
(! empty($get['id']))
?
\intval($get['id'])
:
null
);
// exec
switch ($mode)
{
case 'delete':
{
if ($id === null)
{
// do nothing
}
else
{
\rosavox\services\doc\remove($id);
}
nav('list', []);
break;
}
case 'save':
{
$doc = new \rosavox\entities\doc\entity(
$post['title'],
\explode(',', $post['authors']),
$post['content'],
(empty($post['reasoning']) ? null : $post['reasoning'])
);
if ($id === null)
{
$id = \rosavox\services\doc\add($doc);
}
else
{
\rosavox\services\doc\change($id, $doc);
}
// \rosavox\nav('edit', ['id' => \strval($id)]);
\rosavox\nav('list', []);
break;
}
case 'list':
{
echo(\rosavox\renderings\doc_list());
break;
}
case 'make':
{
echo(\rosavox\renderings\doc_edit(null));
break;
}
case 'edit':
{
echo(\rosavox\renderings\doc_edit($id));
break;
}
default:
{
throw (new \Exception(\sprintf('invalid mode: %s', $mode)));
break;
}
}
}
?>