diff --git a/Sources/api_database/sources/app/Model.php b/Sources/api_database/sources/app/Model.php index 1e5c569..bc9fe9b 100644 --- a/Sources/api_database/sources/app/Model.php +++ b/Sources/api_database/sources/app/Model.php @@ -9,9 +9,12 @@ class Model { global $app; $db = $app->getContainer()['settings']['db']; - $gw = new UserGateway(new Connection($db['dsn'], $db['user'], $db['pass'])); $id = filter_var($id, FILTER_SANITIZE_STRING); + $gw = new UserGateway(new Connection($db['dsn'], $db['user'], $db['pass'])); $userDb = $gw->getInformations($id); + if (count($userDb) != 1) { + throw new Exception("no user matches id"); + } $user = new User($userDb[0][0], $userDb[0][1]); return $user->getInformations(); } @@ -25,7 +28,6 @@ class Model $data['idDafl'] = filter_var($idDafl, FILTER_SANITIZE_STRING); $data['idSpotify'] = filter_var($idSpotify, FILTER_SANITIZE_STRING); $data['passw'] = filter_var($passw, FILTER_SANITIZE_STRING); - $gw = new UserGateway(new Connection($db['dsn'], $db['user'], $db['pass'])); $gw->addUser($data['idDafl'], $data['idSpotify'], $data['passw']); } diff --git a/Sources/api_database/sources/app/routes.php b/Sources/api_database/sources/app/routes.php index 8d70347..5504d9f 100644 --- a/Sources/api_database/sources/app/routes.php +++ b/Sources/api_database/sources/app/routes.php @@ -6,31 +6,40 @@ use \Psr\Http\Message\ResponseInterface as Response; require "Model.php"; require "Connection.php"; -// Test route -$app->get('/hello/{name}', function (Request $request, Response $response, array $args) { - $name = $args['name']; - $response->getBody()->write("Hello, $name"); - - return $response; -}); - -// Get information of a user +// Get information about a user $app->get('/users/{id}', function (Request $request, Response $response, array $args) { - $mdl = new Model(); - $response->getBody()->write(json_encode($mdl->getInformationsUser($args['id']))); - return $response; + try { + $mdl = new Model(); + $res = $mdl->getInformationsUser($args['id']); + } catch (Exception $e) { + $res = array("Error: " . $e->getMessage()); + } finally { + $response->getBody()->write(json_encode($res)); + return $response; + } + }); // Add a user -$app->post('/users/{id}', function (Request $request, Response $response, array $args) { - $mdl = new Model(); - $data = $request->getParsedBody(); - $mdl->addUser($args['id'], $data['idSpotify'], $data['passw']); - return $response; +$app->post('/users/new', function (Request $request, Response $response, array $args) { + try { + $mdl = new Model(); + $data = $request->getParsedBody(); + if (!isset($data['idDafl']) || !isset($data['idSpotify']) || !isset($data['passw'])) { + throw new Exception("missing arguments"); + } + $mdl->addUser($data['idDafl'], $data['idSpotify'], $data['passw']); + $res = "Ok"; + } catch (Exception $e) { + $res = array("Error: " . $e->getMessage()); + } finally { + $response->getBody()->write(json_encode($res)); + return $response; + } }); - -// Update information of a user +/* +// Update information about a user $app->put('/users/{id}', function (Request $request, Response $response, array $args) { $res = "Update infos of user " . $args['id']; $response->getBody()->write($res); @@ -61,3 +70,4 @@ $app->post('/users/{id}/preferences', function (Request $request, Response $resp return $response; }); +*/