<?php


namespace App\Controllers;


use CodeIgniter\API\ResponseTrait;

class FloatFleetWeb extends BaseController
{
    use ResponseTrait;
    public function index()
    {

    }
    public function fleet()
    {
        //$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 = [
            'login' => ['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') {
            log_message('critical', "Enpoint LOC2 HERE -> ".$endpoint );
            $get_param = $_GET['reqData'] ?? null;
            $raw_array = ($get_param!=null) ? json_decode($get_param, true):[];
        }

        // $raw_array['fff'] = json_decode($this->request->getJSON(), true);
        log_message('critical', "Enpoint LOC2-> ".$endpoint );
        switch ($endpoint) {
            case 'login':
                $userAccess = new \App\Models\userAccess();
                $res1 = $userAccess->startFleetLogin($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,
        ];
    }


}