/**
 * Class UserRoute
 *
 * @package ApostaAiApi\Routes
 */
$this->group("/user", function () {
    $this->post("/register", function ($req, $res) {
        $postData = $req->getParsedBody();
        $user = new User();
        $user->setEmail($postData['email']);
        if ($user->emailExists()) {
            return $res->withJson(["Message" => "Email already exists"], 409);
        }
        $user->setBCryptPassword($postData['password']);
        $user->setName($postData['name']);
        $user->setScore(50);
        if ($user->save()) {
            return $res->withJson(["Message" => "Registered"], 200);
        } else {
            return $res->withJson(["Message" => "Error while registering"], 403);
        }
    })->add(new NotLoggedInMiddleware());
    $this->post("/login", function ($req, $res) {
        $postData = $req->getParsedBody();
        $user = UserQuery::create()->findOneByEmail($postData['email']);
        if (!$user) {
            return $res->withJson(["Message" => 'Email ' . $postData['email'] . ' not found'], 404);
        }
        $password = $postData['password'];
        if ($user->authenticate($password)) {
            $_SESSION['id'] = $user->getId();