<?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);
 
}
 
?>
 
 |