function reserve($f3, $params) { $lehrerId = $params['id']; $errorQueryString = ''; if ($f3->exists('POST.zeitId')) { try { $zeitId = $f3->get('POST.zeitId'); $userId = $f3->get('COOKIE.user_id'); Logger::Info($f3, "LehrerPost.reserve", "Lehrer: {$lehrerId}, Zeit: {$zeitId}, User: {$userId}"); DbWrapper::insertReservation($f3->get('db'), $lehrerId, $zeitId, $userId); } catch (Exception $e) { Logger::Error($f3, "LehrerPost.reserve", "Lehrer: {$lehrerId}, Error: {$e->getMessage()}"); if (strpos($e->getMessage(), 'PDOStatement: UNIQUE constraint failed') !== false) { $errorQueryString = '?errorMessage=Sie haben bei diesem Lehrer bereits einen anderen Termin gebucht'; } else { $errorQueryString = '?errorMessage=Reservierung konnte nicht durchgeführt werden'; } } } $f3->reroute('/lehrer/' . $lehrerId . $errorQueryString); }