200 lines
4.6 KiB
PHP
Raw Permalink Normal View History

2023-01-24 19:00:39 +01:00
<?php
$w = $_POST['w']??'';
//require ('../settings.php');
require ('settings_api.php');
switch ($w) {
case 'search_suggestions':
$search = new search();
$results = $search->txtSearch(true);
response (200, "OK", $results);
break;
case 'search':
$search = new search();
$results = $search->txtSearch(false);
response (200, "OK", $results);
break;
case 'total_records_published':
$browse = new browse();
$data = $browse->numRecords();
response (200, "OK", $data);
case 'search_query_text':
$search = new search();
$results = $search->queryText();
response (200, "OK", $results);
break;
case 'display_item':
$item = new item();
$data = $item->getData();
response (200, "OK", $data);
break;
case 'list_countries':
$c = new country();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'list_languages':
$c = new language();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'list_topics':
$c = new topic();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'list_items':
$c = new item();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'list_modules':
$c = new module();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'list_rounds':
$c = new round();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'list_journalField':
$c = new journalField();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'list_pubType':
$c = new pubType();
$results = $c->listAll();
response (200, "OK", $results);
break;
case 'browse':
$browse = new browse();
$data = $browse->getRecords();
response (200, "OK", $data);
break;
case 'browse2spreadsheet':
$browse = new browse();
$data = $browse->spreadsheet_export();
response (200, "OK", $data);
break;
case 'item_citations':
$browse = new browse();
$data = $browse->item_citations();
response (200, "OK", $data);
break;
case 'item2spreadsheet':
$browse = new browse();
$data = $browse->spreadsheet_item();
response (200, "OK", $data);
break;
case 'doi':
$data = doi::fetchData($_POST['doi']);
response (200, "OK", $data);
break;
case 'do_insert':
$myData = filter_input(INPUT_POST, 'content', FILTER_SANITIZE_STRING);
$insert = new publish();
$data = $insert->consider($myData);
if ($data == "OK") {
response (200, "OK", $data);
}
else {
response (406, 'ERROR', $data);
}
default:
response (400, "Invalid Request", $_POST['w']);
break;
}
function response($status,$status_message,$data)
{
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type:application/json");
header("HTTP/1.1 ".$status);
$response['status']=$status;
$response['status_message']=$status_message;
$response['data']=str_replace (array ('{','}','[',']'), array ('','','',''), $data);
$json_response = json_encode($response);
echo $json_response;
if ($status!=200) {
// mail or log
}
die();
}
?>