addRoutingMiddleware(); /** * Add Error Handling Middleware * * @param bool $displayErrorDetails -> Should be set to false in production * @param bool $logErrors -> Parameter is passed to the default ErrorHandler * @param bool $logErrorDetails -> Display error details in error log */ $errorMiddleware = $app->addErrorMiddleware(true, true, true); /** * Add a route for the API */ $app->get('/', function (Request $request) { throw new HttpNotFoundError($request); }); $app->get('/getSouvenirForUser', function(Request $request, Response $response){ $parameters = $request->getQueryParams(); if (empty($parameters['id'])){ throw new TypeErrorParameters($request); } try{ $response->getBody()->write(json_encode((new GatewaySouvenir)->getSouvenirForUser($parameters['id']), JSON_UNESCAPED_UNICODE)); }catch (PDOException $e){ throw new PDOError($request,$e->getMessage(),$e); } return $response->withHeader('Content-type', 'application/json')->withStatus(200); }); $app->post('/addSouvenir', function(Request $request, Response $response){ $parameters = $request->getQueryParams(); if (empty($parameters['title']) || empty($parameters['linkImage']) || empty($parameters['description']) || empty($parameters['longitude']) || empty($parameters['latitude']) || empty($parameters['altitude']) || empty($parameters['userId'])){ throw new TypeErrorParameters($request); } try{ (new GatewaySouvenir)->addSouvenir($parameters['title'], $parameters['linkImage'], $parameters['description'], $parameters['longitude'], $parameters['latitude'], $parameters['altitude'], $parameters['userId']); }catch (PDOException $e){ throw new PDOError($request,$e->getMessage(),$e); } $response->getBody()->write("OK"); return $response->withStatus(200); }); $app->delete('/deleteSouvenir', function(Request $request, Response $response){ $parameters = $request->getQueryParams(); if (empty($parameters['id'])){ throw new TypeErrorParameters($request); } try{ (new GatewaySouvenir)->deleteSouvenir($parameters['id']); }catch (PDOException $e){ throw new PDOError($request,$e->getMessage(),$e); } $response->getBody()->write("OK"); return $response->withStatus(200); }); $app->get('/getAllUsers', function(Request $request, Response $response){ try{ $response->getBody()->write(json_encode((new GatewayUser)->getAllUsers(), JSON_UNESCAPED_UNICODE)); }catch (PDOException $e){ throw new PDOError($request,$e->getMessage(),$e); } return $response->withHeader('Content-type', 'application/json')->withStatus(200); }); $app->get('/getUserPassword/:login', function(Request $request, Response $response, String $login){ if (empty($login)){ throw new TypeErrorParameters($request); } try{ $response->getBody()->write(json_encode((new GatewayUser)->getUserPassword($login), JSON_UNESCAPED_UNICODE)); }catch (PDOException $e){ throw new PDOError($request,$e->getMessage(),$e); } return $response->withHeader('Content-type', 'application/json')->withStatus(200); }); $app->post('/addUser/:login/:password', function(Request $request, Response $response, String $login, String $password){ if (empty($login) || empty($password)){ throw new TypeErrorParameters($request); } try{ (new GatewayUser)->addUser($login,$password); }catch (PDOException $e){ throw new PDOError($request,$e->getMessage(),$e); } $response->getBody()->write("OK"); return $response->withStatus(200); }); // Run app $app->run();