1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace ComboStrap\Web; 4*04fd306cSNickeau 5*04fd306cSNickeauuse ComboStrap\ExceptionBadArgument; 6*04fd306cSNickeauuse ComboStrap\ExceptionBadSyntax; 7*04fd306cSNickeauuse ComboStrap\LogUtility; 8*04fd306cSNickeauuse ComboStrap\Site; 9*04fd306cSNickeauuse ComboStrap\Web\Url; 10*04fd306cSNickeau 11*04fd306cSNickeauclass UrlEndpoint 12*04fd306cSNickeau{ 13*04fd306cSNickeau 14*04fd306cSNickeau const LIB_EXE_FETCH_PHP = '/lib/exe/fetch.php'; 15*04fd306cSNickeau const LIB_EXE_DETAIL_PHP = '/lib/exe/detail.php'; 16*04fd306cSNickeau const LIB_EXE_RUNNER_PHP = '/lib/exe/taskrunner.php'; 17*04fd306cSNickeau const LIB_EXE_CSS_PHP = '/lib/exe/css.php'; 18*04fd306cSNickeau const DOKU_PHP = '/doku.php'; 19*04fd306cSNickeau const LIB_EXE_AJAX_PHP = "/lib/exe/ajax.php"; 20*04fd306cSNickeau const DOKU_ENDPOINTS = [ 21*04fd306cSNickeau self::DOKU_PHP, 22*04fd306cSNickeau self::LIB_EXE_FETCH_PHP, 23*04fd306cSNickeau self::LIB_EXE_DETAIL_PHP, 24*04fd306cSNickeau self::LIB_EXE_RUNNER_PHP, 25*04fd306cSNickeau self::LIB_EXE_AJAX_PHP, 26*04fd306cSNickeau self::LIB_EXE_CSS_PHP 27*04fd306cSNickeau ]; 28*04fd306cSNickeau 29*04fd306cSNickeau 30*04fd306cSNickeau public static function createFetchUrl(): Url 31*04fd306cSNickeau { 32*04fd306cSNickeau return Url::createEmpty()->setPath(self::LIB_EXE_FETCH_PHP); 33*04fd306cSNickeau } 34*04fd306cSNickeau 35*04fd306cSNickeau public static function createDetailUrl(): Url 36*04fd306cSNickeau { 37*04fd306cSNickeau return Url::createEmpty()->setPath(self::LIB_EXE_DETAIL_PHP); 38*04fd306cSNickeau } 39*04fd306cSNickeau 40*04fd306cSNickeau 41*04fd306cSNickeau public static function createComboStrapUrl(): Url 42*04fd306cSNickeau { 43*04fd306cSNickeau return Url::createEmpty() 44*04fd306cSNickeau ->setScheme("https") 45*04fd306cSNickeau ->setHost("combostrap.com"); 46*04fd306cSNickeau } 47*04fd306cSNickeau 48*04fd306cSNickeau public static function createSupportUrl(): Url 49*04fd306cSNickeau { 50*04fd306cSNickeau 51*04fd306cSNickeau return self::createComboStrapUrl() 52*04fd306cSNickeau ->setPath("support"); 53*04fd306cSNickeau 54*04fd306cSNickeau } 55*04fd306cSNickeau 56*04fd306cSNickeau public static function createDokuUrl(): Url 57*04fd306cSNickeau { 58*04fd306cSNickeau 59*04fd306cSNickeau return Url::createEmpty()->setPath(self::DOKU_PHP); 60*04fd306cSNickeau 61*04fd306cSNickeau } 62*04fd306cSNickeau 63*04fd306cSNickeau 64*04fd306cSNickeau /** 65*04fd306cSNickeau * 66*04fd306cSNickeau */ 67*04fd306cSNickeau public static function createBaseUrl(): Url 68*04fd306cSNickeau { 69*04fd306cSNickeau $url = Site::getBaseUrl(); 70*04fd306cSNickeau try { 71*04fd306cSNickeau return Url::createFromString($url); 72*04fd306cSNickeau } catch (ExceptionBadArgument|ExceptionBadSyntax $e) { 73*04fd306cSNickeau LogUtility::error("The base Url ($url) is not a valid url. Empty URL returned. Error: {$e->getMessage()}", "urlendpoint",$e); 74*04fd306cSNickeau return Url::createEmpty(); 75*04fd306cSNickeau } 76*04fd306cSNickeau } 77*04fd306cSNickeau 78*04fd306cSNickeau public static function createTaskRunnerUrl(): Url 79*04fd306cSNickeau { 80*04fd306cSNickeau return Url::createEmpty()->setPath(self::LIB_EXE_RUNNER_PHP); 81*04fd306cSNickeau } 82*04fd306cSNickeau 83*04fd306cSNickeau public static function createAjaxUrl(): Url 84*04fd306cSNickeau { 85*04fd306cSNickeau return Url::createEmpty()->setPath(self::LIB_EXE_AJAX_PHP); 86*04fd306cSNickeau } 87*04fd306cSNickeau 88*04fd306cSNickeau public static function createCssUrl(): Url 89*04fd306cSNickeau { 90*04fd306cSNickeau return Url::createEmpty()->setPath(self::LIB_EXE_CSS_PHP); 91*04fd306cSNickeau } 92*04fd306cSNickeau 93*04fd306cSNickeau 94*04fd306cSNickeau} 95