103 lines
2 KiB
PHP
103 lines
2 KiB
PHP
<?php
|
|
|
|
require_once('lib/alveolata/definitions.php');
|
|
require_once(DIR_ALVEOLATA . '/log/functions.php');
|
|
require_once(DIR_ALVEOLATA . '/http/types.php');
|
|
require_once(DIR_ALVEOLATA . '/cgi/functions.php');
|
|
require_once(DIR_ALVEOLATA . '/rest/functions.php');
|
|
require_once(DIR_ALVEOLATA . '/list/functions.php');
|
|
|
|
require_once('services/doc.php');
|
|
|
|
|
|
/**
|
|
*/
|
|
function main() : void
|
|
{
|
|
// init
|
|
\alveolata\cgi\setup();
|
|
\rosavox\services\doc\init();
|
|
|
|
// setup api
|
|
$rest = \alveolata\rest\make(
|
|
[
|
|
'name' => 'rosavox',
|
|
]
|
|
);
|
|
\alveolata\rest\register(
|
|
$rest,
|
|
\alveolata\http\enum_method::get,
|
|
'meta/ping',
|
|
[
|
|
'execution' => function ($version, $path_parameters, $headers, $input) {
|
|
return [
|
|
'status_code' => 200,
|
|
'data' => 'pong',
|
|
];
|
|
},
|
|
]
|
|
);
|
|
\alveolata\rest\register(
|
|
$rest,
|
|
\alveolata\http\enum_method::get,
|
|
'doc',
|
|
[
|
|
'execution' => function ($version, $path_parameters, $headers, $input) {
|
|
return [
|
|
'status_code' => 200,
|
|
'data' => \alveolata\list_\map(
|
|
\rosavox\services\doc\dump(),
|
|
function ($entry) {
|
|
return [
|
|
'id' => $entry['id'],
|
|
'doc' => [
|
|
'title' => $entry['value']->title
|
|
]
|
|
];
|
|
}
|
|
),
|
|
];
|
|
},
|
|
]
|
|
);
|
|
\alveolata\rest\register(
|
|
$rest,
|
|
\alveolata\http\enum_method::get,
|
|
'doc/{id}',
|
|
[
|
|
'execution' => function ($version, $path_parameters, $headers, $input) {
|
|
\alveolata\log\info('req', ['path_parameters' => $path_parameters]);
|
|
$id = \intval($path_parameters['id']);
|
|
$doc = \rosavox\services\doc\get($id);
|
|
return [
|
|
'status_code' => 200,
|
|
'data' => [
|
|
'title' => $doc->title,
|
|
],
|
|
];
|
|
},
|
|
]
|
|
);
|
|
|
|
// exec
|
|
$http_request = \alveolata\cgi\get_http_request();
|
|
\alveolata\log\info(
|
|
'http_request',
|
|
[
|
|
'http_request' => $http_request,
|
|
]
|
|
);
|
|
$http_response = \alveolata\rest\call($rest, $http_request);
|
|
\alveolata\log\info(
|
|
'http_response',
|
|
[
|
|
'http_response' => $http_response,
|
|
]
|
|
);
|
|
\alveolata\cgi\put_http_response($http_response);
|
|
}
|
|
|
|
|
|
main();
|
|
|
|
?>
|