First full working version

This commit is contained in:
2025-01-22 15:10:59 +01:00
parent 37a323c375
commit 97f5e69740
83 changed files with 397 additions and 1016 deletions

View File

@ -6,48 +6,14 @@ declare(strict_types = 1);
require_once __DIR__ . '/../provideEnv.php';
header('Content-Type: application/json; charset=utf-8');
$verb = MD_STD_IN::get_http_input_text("verb");
$subject = MD_STD_IN::get_http_input_text("subject");
if (empty($verb) && empty($subject)) {
header('Content-Type: application/json; charset=utf-8');
readfile(__DIR__ . '/../static/json/openapi.json');
return;
}
$output = match ($verb) {
'evaluate' => (new ConcordanceChecker($subject))->evaluate(explode(PHP_EOL, $_POST['terms'] ?? $_GET['terms'] ?? [])),
default => throw new MDpageParameterNotFromListException(),
};
$availableLangs = MD_STD::scandir(__DIR__ . '/../l10n/musdb/');
$lang = MD_STD_IN::get_http_input_text("lang", "en", $availableLangs);
$parser = MD_STD_IN::get_http_input_text("parser");
$data = trim(filter_input(INPUT_POST, "data"));
if ($verb === 'evaluate' && in_array($subject, ['object', 'minimaldatensatz', 'count_vocabulary_entries_to_be_added'], true)) {
$limitMode = match($subject) {
'object' => QARunnerLimitMode::main,
'minimaldatensatz' => QARunnerLimitMode::minimaldatensatz,
'count_vocabulary_entries_to_be_added' => QARunnerLimitMode::count_new_vocab_entries,
};
$runner = new QARunner($lang, $parser, $data, $limitMode);
header('Content-Type: application/json; charset=utf-8');
echo json_encode([
'results' => match($subject) {
'object' => $runner->evaluateObjects(),
'minimaldatensatz' => $runner->evaluateObjectsForMinimaldatensatz(),
'count_vocabulary_entries_to_be_added' => $runner->countNewlyRequestedVocabularyEntries(),
},
]);
}
else if ($verb === 'convert_to_xml' && in_array($subject, QaConvertToXml::listAvailableOutputFormats(), true)) {
$institution_name = MD_STD_IN::get_http_input_text("institution_name");
$institution_identifier = MD_STD_IN::get_http_input_text("institution_identifier");
$runner = new QARunner($lang, $parser, $data, null); // TODO: Add limit modes per format
header('Content-Type: text/xml; charset=utf-8');
echo $runner->convertToXml($subject, $institution_name, $institution_identifier);
}
echo MD_STD::json_encode($output);