diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 2956e43..6fb8ea2 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -36,6 +36,9 @@ $routes->get('/', 'Home::index'); $routes->get('/wp/', 'Dengine::index'); $routes->get('/en/floatweb/api/v1/blogdata/', 'FloatWeb::blogData'); +$routes->get('/en/floatweb/api/v1/blogdata/(:any)', 'FloatWeb::blogData/$1'); +$routes->get('/en/floatweb/api/v1/faq', 'FloatWeb::website'); +$routes->post('/en/floatweb/api/v1/contact', 'FloatWeb::website'); //CHIEFSOFT WEBSITE diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 0328f14..9825bf9 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -8,6 +8,8 @@ use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; +use CodeIgniter\Cache\CacheInterface; + /** * Class BaseController @@ -49,4 +51,33 @@ class BaseController extends Controller // E.g.: $this->session = \Config\Services::session(); } + + + public function runCache($cacheKey,$data){ + $cache = \Config\Services::cache(); + if (! $foo = cache($cacheKey)) { + echo 'Saving to the cache!
'; + cache()->save($cacheKey, $this->data_stringify($data), 3000); + } + // $foo = $cache->get('foo'); + } + + private function data_stringify($data) { + switch (gettype($data)) { + case 'string' : return '\''.addcslashes($data, "'\\").'\''; + case 'boolean': return $data ? 'true' : 'false'; + case 'NULL' : return 'null'; + case 'object' : + case 'array' : + $expressions = []; + foreach ($data as $c_key => $c_value) { + $expressions[] = $this->data_stringify($c_key).' => '. + $this->data_stringify($c_value); + } + return gettype($data) === 'object' ? + '(object)['.implode(', ', $expressions).']' : + '['.implode(', ', $expressions).']'; + default: return (string)$data; + } + } } diff --git a/app/Controllers/FloatWeb.php b/app/Controllers/FloatWeb.php index c4cd2cd..35f73b4 100644 --- a/app/Controllers/FloatWeb.php +++ b/app/Controllers/FloatWeb.php @@ -5,7 +5,6 @@ namespace App\Controllers; use CodeIgniter\API\ResponseTrait; -use CodeIgniter\Cache\CacheInterface; class FloatWeb extends BaseController { @@ -530,47 +529,86 @@ variations from the norm, and in addition other reproductive organ issue return $resJson; } - private function runCache($cacheKey,$data){ - $cache = \Config\Services::cache(); - if (! $foo = cache($cacheKey)) { - echo 'Saving to the cache!
'; - cache()->save($cacheKey, $this->data_stringify($data), 3000); - } - // $foo = $cache->get('foo'); - } - - private function data_stringify($data) { - switch (gettype($data)) { - case 'string' : return '\''.addcslashes($data, "'\\").'\''; - case 'boolean': return $data ? 'true' : 'false'; - case 'NULL' : return 'null'; - case 'object' : - case 'array' : - $expressions = []; - foreach ($data as $c_key => $c_value) { - $expressions[] = $this->data_stringify($c_key).' => '. - $this->data_stringify($c_value); - } - return gettype($data) === 'object' ? - '(object)['.implode(', ', $expressions).']' : - '['.implode(', ', $expressions).']'; - default: return (string)$data; - } - } public function index() { -// $rawData = $this->apiData(); -// // $res1= $rawData[0]['payload']; -// $res1= $rawData; //['payload']; -// -// // var_dump($res1); -// -// return $this->response->setJson($res1); - // $cache = \Config\Services::cache(); - // $foo = $cache->get('foo'); + } + public function website() + { + //$request = service('request'); + header('Access-Control-Allow-Origin: *'); + //header("Access-Control-Allow-Origin: http://localhost:9057 "); + header('Access-Control-Expose-Headers: Access-Control-Allow-Origin'); + //header('Access-Control-Allow-Credentials: true '); + //header("Access-Control-Allow-Headers: Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With"); + header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS'); + header('Content-type: application/json'); + // what is the endpoint + $uri = urldecode(current_url(true)); + $findme = '?'; + $pos = strpos($uri, $findme); + if ($pos > 5) { + $uri = substr($uri, 0, $pos); + } + $pieces = explode('/', $uri); + $psc = count($pieces); + + $endpoint = $psc > 0 ? $pieces[$psc - 1] : ''; + log_message('critical', "Enpoint-> ".$endpoint ); + + $endpoints = [ + 'faq' => ['get'], + 'blogdata' => ['GET'], + 'contact' => ['POST'] + ]; + + $res1 = []; + if (array_key_exists($endpoint, $endpoints)) { + } else { + http_response_code(404); + // tell the user product does not exist + echo 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'] == 'GET') { + $get_param = $_GET['reqData'] ?? null; + $raw_array = json_decode($get_param, true); + } + + // $raw_array['fff'] = json_decode($this->request->getJSON(), true); + log_message('critical', "Enpoint LOC2-> ".$endpoint ); + switch ($endpoint) { + case 'faq': + //$res1 = $this->dummyData($raw_array); + $res1 = $this->apiData(); + break; + case 'blogdata': + // $res = $this->dummyData($raw_array); + break; + case 'contact': + $res1 = $this->dummyData($raw_array); + break; + + } + + return $this->response->setJson($res1); + } + + //this is dummy function to establish the endpoints before real implementations + private function dummyData($raw_array) + { + return [ + 'msg' => 'Not implemented yet', + 'raw_data' => $raw_array, + ]; } } \ No newline at end of file