Files
WrenchBoradWeb/www-api/app/Controllers/WrenchMedia.php
T
CHIEFSOFT\ameye 05dc5d873d job constant
2023-11-06 07:15:47 -05:00

191 lines
6.3 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\API\ResponseTrait;
class WrenchMedia extends BaseController
{
protected $db;
public $con_name = 'wrench_blog';
use ResponseTrait;
protected $request;
public $savePath = WRENCHBOARD_UPLOAD_PATH;
public function __construct()
{
$this->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;
const WRENCH_FILE_JOB = 500;
public function apigate(){
log_message('critical', "Media gate Path GATE 001");
$call_backend = false;
$uriSegments = explode("/", parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
$segLen = count($uriSegments);
if ( $segLen < 4 ){
return;
}
log_message('critical', "Media gate Path GATE 002 - Segemtn Found");
$sessionId = $uriSegments[$segLen-3];
$fileSection = $uriSegments[$segLen-2];
$fileUID = $uriSegments[$segLen-1];
$supportedSections = ['profile'=>100,'myfile'=>200,'contracts'=>300,'family'=>400,'job'=>500];
if (!array_key_exists($fileSection, $supportedSections)) {
log_message('critical', "Media gate Path GATE 003 - Fail Segment Types");
$file = FCPATH.'/assets/images/error.png';
header('Content-Type: image/png');
readfile($file);
exit();
}
else{
// echo "all good";
log_message('critical', "Media gate Path GATE 003 - Pass Segment Types");
}
/*
*
* 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
#define WRENCH_FILE_JOB 500
*/
/*
if( $this->sessionCheckString($sessionId)== PHP_API_OK ){
log_message('critical', "Media gate Path GATE 004 - Pass Session Test");
}
else{
// return 0; for now - no session
log_message('critical', "Media gate Path GATE 004 - Fail Session Test");
}
*/
log_message('critical', "Media gate Path GATE 005 - Ready to File File ****");
// $file = FCPATH.'/assets/images/books.png';
// // header('Content-Type: image/jpeg');
// header('Content-Type: image/png');
// readfile($file);
//
// exit();
$data = [
'action' => WRENCHBOARD_GET_MEDIA,
'sessionid' => $sessionId,
'file_section' => $supportedSections[$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;
}
$selectedFile="";
$error_file ="error.png";
switch($supportedSections[$fileSection]){
case WRENCH_FILE_PROFILE:
///opt/wrenchboard/TEST/PROFILE/3119b744-42ad-4834-bb83-b737588754ca/PORTRAIT
$selectedFile = $this->savePath.'PROFILE/'.$out["member_uid"]."/PORTRAIT/". $out["saved_file_name"];
$error_file ="profile_error.png";
break;
case WRENCH_FILE_FAMILY:
///opt/wrenchboard/TEST/PROFILE/3119b744-42ad-4834-bb83-b737588754ca/FAMILY/3119b744-42ad-4834-bb83-b737588754ca/
$selectedFile = $this->savePath.'PROFILE/'.$out["member_uid"]."/FAMILY/".$out["family_uid"]."/". $out["saved_file_name"];
$error_file ="family_error.png";
break;
case WRENCH_FILE_MYFILE:
$selectedFile = $this->savePath.'PROFILE/'.$out["member_uid"]."/MYFILES/". $out["saved_file_name"];
break;
case WRENCH_FILE_JOB:
$selectedFile = $this->savePath.'PROFILE/'.$out["member_uid"]."/JOBS/". $out["saved_file_name"];
$error_file ="job_error.png";
break;
}
// MAKE SURE FOLDER AS PER PROCESS IS AVAILABLE
log_message('critical', "wrenchboard_api-CALL MEDIA selectedFile DATA ---> ".$selectedFile );
if ( $out["saved_file_name"] =='' || !file_exists( $selectedFile) ){
log_message('critical', "wrenchboard_api-CALL MEDIA selectedFile DATA ERROR NO FOUND---> ".$selectedFile );
$file = FCPATH.'/assets/images/'.$error_file;
// header('Content-Type: image/jpeg');
header('Content-Type: image/png');
readfile($file);
}
else
{
$filename = basename($out["saved_file_name"]);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch( $file_extension ) {
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpeg"; break;
case "svg": $ctype="image/svg+xml"; break;
default:
}
header('Content-type: ' . $ctype);
readfile($selectedFile);
}
// exit();
//
// $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;
// }
}
}