request = \Config\Services::request(); // Services::request(); } public function index() { } public function users() { //$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 = current_url(true); $pieces = explode('/', $uri); $psc = count($pieces); $endpoint = $psc > 0 ? $pieces[$psc - 1] : ''; $endpoints = [ 'account' => ['POST'], 'login' => ['POST'], 'reminders' => ['GET'], 'editreminder' => ['POST'], 'myfeed' => ['GET'], 'calendar' => ['GET'], 'profile' => ['GET'], 'loginhx' => ['GET'], 'stats' => ['GET'], 'remcategory' => ['GET'], 'remmode' => ['GET'], ]; // Retrieve an HTTP Request header, with case-insensitive names // $header_host = $this->request->getHeader('host'); $content_type = $this->request->getHeader('Content-Type'); // Retrieve JSON from AJAX calls $hhost = $this->request->getServer('Host'); // Retrieve an HTTP Request header, with case-insensitive names // $request->getHeader('host'); //$au = $this->request->getHeader('Authorization'); $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.']); } // echo "EXYTACT INPUT DATA HERE"; $raw_json = file_get_contents('php://input'); $raw_array = json_decode($raw_json, true); //$raw_array['au'] =$au; // $raw_array['host'] = $header_host; $raw_array['getitem'] = $this->request->getJSON(); $raw_array['content_type'] = $content_type; $raw_array['hhost'] = $hhost; if ($_SERVER['REQUEST_METHOD'] == 'GET') { $opts = [ 'http' => [ 'method' => 'GET', ], ]; $context = stream_context_create($opts); // Open the file using the HTTP headers set above $raw_json = file_get_contents('php://input', false, $context); $raw_array = json_decode($raw_json, true); // $raw_array = ['abcdef']; } // $raw_array = json_decode($this->request->getJSON(), true); switch ($endpoint) { case 'login': //$userAccess = new \App\Models\userAccess(); //$res1 = $userAccess->startLogin($raw_array); break; case 'account': // $res = $this->dummyData($raw_array); break; case 'reminders': $myfitUserReminders = new \App\Models\myfitUserReminders(); $res1 = $myfitUserReminders->readReminders($raw_array); break; case 'remcategory': $myfitUserReminders = new \App\Models\myfitUserReminders(); $res1 = $myfitUserReminders->reminderCategory(); break; case 'remmode': $myfitUserReminders = new \App\Models\myfitUserReminders(); $res1 = $myfitUserReminders->reminderMode(); break; case 'editreminder': $myfitUserReminders = new \App\Models\myfitUserReminders(); $res1 = $myfitUserReminders->reminderAddEdit($raw_array); break; case 'resources': $myfiResources = new \App\Models\myfiResources(); $res1 = $myfiResources->getSiteResources($raw_array); break; case 'myfeed': $res1 = $this->dummyData($raw_array); break; case 'calendar': $res1 = $this->dummyData($raw_array); break; case 'profile': $res1 = $this->dummyData($raw_array); break; case 'stats': $res1 = $this->dummyData($raw_array); break; case 'loginhx': $myfitHx = new \App\Models\myfitHx(); $res1 = $myfitHx->readLoginHx($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, ]; } }