addRoutingMiddleware(); $ssConfig = new SameSiteCookieConfiguration(["same_site" => "strict"]); // add in same site cookie stuff $app->add(new SameSiteCookieMiddleware($ssConfig)); // for error checking $errorMiddleware = $app->addErrorMiddleware(true, true, true); // set base path for all routes $app->setBasePath("/api"); // return all responses as JSON $app->add(function($request, $handler) { $response = $handler->handle($request); return $response->withHeader('Content-Type', 'application/json'); }); $timelineData = new timelineData(); $projectData = new projectData(); $user = new user(); $app->get("/timelineData/{timeline}", function (Request $request, Response $response, array $args) { global $timelineData; //check if route is available if it is get the data //otherwise return an error if($args["timeline"] == "edu") { return $response->getBody()->write(json_encode($timelineData->getEduData())); } if($args["timeline"] == "work") { return $response->getBody()->write(json_encode($timelineData->getWorkData())); } // something went wrong $response->getBody()->write(json_encode(array("errorMessage" => "Error, timeline data not found"))); return $response->withStatus(404); }); $app->get('/projectData', function (Request $request, Response $response) { global $projectData; $result = $projectData->getProjectData(); $json = json_encode($result); $response->getBody()->write($json); if(array_key_exists("errorMessage", $result)) { $response = $response->withStatus(404); } //use content type json to indicate json data on frontend. return $response; }); $app->post('/contact', function (Request $request, Response $response) { $data = $request->getParsedBody(); if(empty($data["fName"]) || empty($data["lName"]) || empty($data["email"]) || empty($data["subject"]) || empty($data["message"])) { $response->getBody()->write(json_encode(array("errorMessage" => "Please fill out all the fields"))); return $response->withStatus(400); } if (!filter_var($data["email"], FILTER_VALIDATE_EMAIL)) { $response->getBody()->write(json_encode(array("errorMessage" => "Email is not the correct format"))); $response = $response->withStatus(400); return $response; } // email form filler/conatcter $headers1 = "From: noreply@rohitpai.co.uk\r\n"; $headers1 .= "Reply-To: rohit@rohitpai.co.uk\r\n"; $headers1 .= "MIME-Version: 1.0\r\n"; $headers1 .= "Content-Type: text/html; charset=UTF-8\r\n"; $message1 = " {$data['subject']}

Thank you for filling out the form on my website, I will try to respond to your query as soon as I can.


Below is what you filled in for your record

Firstname Lastname Email Subject message
{$data['fName']} {$data['lName']} {$data['email']} {$data['subject']} {$data['message']}


Regards,
Rohit Pai
rohit@rohitpai.co.uk "; mail($data["email"], $data["subject"], $message1, $headers1); // email to me $headers2 = "From: noreply@rohitpai.co.uk\r\n"; $headers2 .= "Reply-To: {$data['email']}\r\n"; $headers2 .= "MIME-Version: 1.0\r\n"; $headers2 .= "Content-Type: text/html; charset=UTF-8\r\n"; $message2 = " {$data['subject']}

{$data['fName']} {$data['lName']} filled in the form on the website, here is what they sent.

Firstname Lastname Email Subject message
{$data['fName']} {$data['lName']} {$data['email']} {$data['subject']} {$data['message']}
"; mail("rohit@rohitpai.co.uk", "{$data['fName']} {$data['lName']} filled in the form", $message2, $headers2); return $response->withStatus(201); }); $app->post('/user/login', function (Request $request, Response $response) { global $user; // get request data $data = $request->getParsedBody(); if (empty($data["username"]) || empty($data["password"])) { // uh oh user sent empty data return $response->withStatus(400); } if ($user->checkUser($data["username"], $data["password"])) { // yay user is logged in $_SESSION["token"] = $user->createToken(); $_SESSION["username"] = $data["username"]; return $response; } return $response->withStatus(401); }); $app->get('/user/isLoggedIn', function (Request $request, Response $response) { global $user; if (empty($_SESSION["token"]) && empty($_SESSION["username"])) { // uh oh user not logged in return $response->withStatus(401); } if (empty($_SESSION["token"])) { // user is logged in but no token was created $_SESSION["token"] = $user->createToken(); return $response; } return $response->getBody()->write(json_encode(array("token" => $_SESSION["token"]))); }); $app->run();