request = $request = \Config\Services::request(); //define('WRENCHBOARD_UPLOAD_PATH', '/opt/wrenchboard/TEST/'); $this->savePath= '/opt/wrenchboard/TEST/'; } public function index() { $envID = getenv('ENV_ID'); } public function endPointList(){ $endpoints = [ 'getmedia' => ['POST'], ]; return $endpoints; } const WRENCH_FILE_PROFILE = 100; const WRENCH_FILE_MYFILE = 200; const WRENCH_FILE_CONTRACTS = 300; const WRENCH_FILE_FAMILY = 400; public function apigate(){ $call_backend = false; $uriSegments = explode("/", parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); $segLen = count($uriSegments); if ( $segLen < 4 ){ return; } $sessionId = $uriSegments[$segLen-3]; $fileSection = $uriSegments[$segLen-2]; $fileUID = $uriSegments[$segLen-1]; $supportedSections = ['profile'=>100,'myfile'=>200,'contracts'=>300,'family'=>400]; if (!in_array($fileSection, $supportedSections)) { // section not supported // return; } /* * VERIFY ALL PARAMETERS ARE GOOD #define WRENCH_FILE_PROFILE 100 #define WRENCH_FILE_MYFILE 200 #define WRENCH_FILE_CONTRACTS 300 #define WRENCH_FILE_FAMILY 400 */ if( $this->sessionCheckString($sessionId)== PHP_API_OK ){ } else{ return 0; } //We can check cache for the file or // OR // WE need to ask backend for this file now / // $call_backend = true; $data = [ 'action' => WRENCHBOARD_GET_MEDIA, 'sessionid' => $sessionId, 'file_section' => $fileSection, 'file_uid' => $fileUID, 'file_section_no' =>$supportedSections[$fileSection] ]; if ($data["action"] !=''){ $wrenchboard = new \App\Models\BackendModel(); $ret = $wrenchboard->wrenchboard_api($data, $out); $out['internal_return'] = $ret; } //print_r($out); ///opt/wrenchboard/TEST/PROFILE/dfc9d601-780f-4d78-839f-422f0928f911/PORTRAIT/ switch($supportedSections[$fileSection]){ case 'profile': ///opt/wrenchboard/TEST/PROFILE/3119b744-42ad-4834-bb83-b737588754ca/PORTRAIT $selectedFile = $this->savePath.'PROFILE/'.$out["member_uid"]."/PORTRAIT/". $out["saved_file_name"]; break; case 'family': ///opt/wrenchboard/TEST/PROFILE/3119b744-42ad-4834-bb83-b737588754ca/FAMILY/3119b744-42ad-4834-bb83-b737588754ca/ $selectedFile = $this->savePath.'PROFILE/'.$out["member_uid"]."/FAMILY/family_uid/". $out["saved_file_name"]; break; case 'myfile': $selectedFile = $this->savePath.'PROFILE/'.$out["member_uid"]."/MYFILES/". $out["saved_file_name"]; break; } // MAKE SURE FOLDER AS PER PROCESS IS AVAILABLE log_message('critical', "wrenchboard_api-CALL MEDIA selectedFile DATA".$selectedFile ); $file = $selectedFile; // 'books.png'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($file).'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } } }