| 
<?php
use php\github as hub;
 ini_set('default_charset', 'utf-8');
 error_log("web.php");
 require_once("local.inc");
 require_once("phpGithub.php");
 require_once("phpGithubContent.php");
 require_once("hubHelper.php");
 
 $repo="CSSEGISandData/COVID-19";
 $path="csse_covid_19_data/csse_covid_19_daily_reports";
 
 /*
 2020-04-06 - the class might fast become deprecated/obsolete
 class phpGithub is based on GitHub API v3 - a class for GitHub API v4 - is work in progress
 
 */
 
 $hub = new php\github\phpGithub();
 if(gethostname()=="AspireE15") { $hub->AddCurlConfig(CURLOPT_CAINFO, LOCAL_CURLOPT_CAINFO);}
 $response=$hub->returnContent($repo,$path);
 
 if($response->success)
 {
 $files=new php\github\phpGithubContent($response->response);
 if($files->isDir)
 {
 $counter=$files->count();
 $counter-=2;
 $fileEntry=$files->returnEntry($counter);
 returnJsonDocument($fileEntry);
 }
 else
 {
 return returnJsonError(500, "Unexpected github format change in $repo/$path");
 }
 }
 else
 {
 // if something went wrong, return 400 to web services client
 return returnJsonError(400,$hub->getLastErrorMessage());
 }
 
 function returnJsonError(int $code,string $message)
 {
 http_response_code($code);
 if(!headers_sent())
 {
 header("Content-Type: application/json");
 header("Access-Control-Allow-Origin: *");
 header("Access-Control-Allow-Headers: *");
 header("Access-Control-Expose-Headers: *");
 }
 echo "{\"error\":{\"code\":$code,\"message\":\"$message\"}}";
 }
 
 function returnJsonDocument($entry)
 {
 if(!headers_sent())
 {
 $DT = new DateTime('NOW');
 $DTF = $DT->format('c');
 header("Content-Type: application/json");
 header("Access-Control-Allow-Origin: *");
 header("Access-Control-Allow-Headers: *");
 header("Access-Control-Expose-Headers: *");
 header("X-Host-Time: $DTF");
 header("X-Host-Slave:{$_SERVER['SERVER_NAME']}");
 
 }
 $json=new Stdclass();
 $json->response=new Stdclass();
 $json->response->source=$entry->download_url;
 $json->response->path=$entry->path;
 $json->response->name=$entry->name;
 $json->response->size=$entry->size;
 $json->response->sha=$entry->sha;
 $json->response->html_url=$entry->html_url;
 echo json_encode($json);
 }
 ?>
 |