request = $request = \Config\Services::request(); } public function index() { $envID = getenv('ENV_ID'); } public function endPointList(){ $endpoints = [ 'authstart' => ['POST'], 'authlogin' => ['POST'], ]; return $endpoints; } public function apigate() { log_message('critical', "('******************* Oauth-Gate ('*******************"); header('Access-Control-Allow-Origin: *'); log_message('critical', "0002"); header("Access-Control-Allow-Headers: Origin, X-API-KEY, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Access-Control-Allow-Headers, Authorization, observe, enctype, Content-Length, X-Csrf-Token"); log_message('critical', "0003"); header("Access-Control-Allow-Methods: GET, PUT, POST, DELETE, PATCH, OPTIONS"); header("Access-Control-Allow-Credentials: true"); header("Access-Control-Max-Age: 3600"); header('content-type: application/json; charset=utf-8'); $method = $_SERVER['REQUEST_METHOD']; if ($method == "OPTIONS") { header("HTTP/1.1 200 OK CORS"); log_message('critical', " apigate()-> OPTIONS DIE*****" ); die(); } //$request = service('request'); // what is the endpoint $uri = urldecode(current_url(true)); $findme = '?'; $pos = strpos($uri, $findme); if ($pos > 5) { $uri = substr($uri, 0, $pos); } log_message('critical', "API-GATE URI -> ".$uri ); $pieces = explode('/', $uri); $psc = count($pieces); $endpoint = $psc > 0 ? $pieces[$psc - 1] : ''; log_message('critical', "Enpoint-> ".$endpoint ); $endpoints = $this->endPointList(); $res1 = []; if (array_key_exists($endpoint, $endpoints)) { } else { http_response_code(404); // tell the user product does not exist return json_encode([ 'message' => 'Endpoint not found.', 'URI' => $uri, ]); } // echo "EXYTACT INPUT DATA HERE"; $raw_json = file_get_contents('php://input'); $raw_array = json_decode($raw_json, true); if ($_SERVER["REQUEST_METHOD"] == "POST") { // if upload lets modify all the data if (isset($_FILES) && is_array($_FILES) && count($_FILES)>0) { $raw_array = array_merge($_POST,$_FILES); } } if ($_SERVER['REQUEST_METHOD'] == 'GET') { log_message('critical', "Enpoint LOC2 HERE -> ".$endpoint ); $get_param = $_GET['reqData'] ?? null; $raw_array = ($get_param!=null) ? json_decode($get_param, true):[]; } //$in = $raw_array; log_message('critical', "wrenchboard_api-CALL RAW DATA".serialize($raw_array) ); //-- move to another module start $externalOAuth2 = new \App\Models\ExternalOAuth2Model(); $in["loc"] = $_SERVER["REMOTE_ADDR"]; $call_backend = true; $local_out = []; $in = $externalOAuth2->prepareOauthEndPointData($endpoint, $raw_array, $call_backend, $local_out); log_message('critical', "wrenchboard_api-CALL PREPARE DATA: ".json_encode($in) ); $out = array(); if ( $call_backend == true && $in["action"] !='' ){ $wrenchboard = new \App\Models\BackendModel(); $ret = $wrenchboard->wrenchboard_api($in, $out); $out['internal_return'] = $ret; } else { $out = $local_out; } //$this->doCacheStep($in, $out); return json_encode( ( new \App\Models\ResultFormatter() )->processOutJson($in, $out)); } }