Files
2023-02-04 14:54:06 -05:00

156 lines
5.3 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\API\ResponseTrait;
use CodeIgniter\HTTP\IncomingRequest;
class Myfituser extends BaseController
{
use ResponseTrait;
protected $request;
public function __construct()
{
$this->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,
];
}
}