$app['translator.domains'] = array(); // Controller $app->match('/', function (Request $request) use($app) { date_default_timezone_set('Europe/Paris'); $startDate = new \DateTime('midnight first day of this month'); $endDate = new \DateTime('23:59:59 last day of +4 months'); $form = $app['form.factory']->create(new UserType()); if ($request->getMethod() === 'POST') { $form->bindRequest($request); if ($form->isValid()) { $data = $form->getData(); $data['startDate'] = $startDate; $data['endDate'] = $endDate; try { $client = new Client($data['login'], $data['password']); $events = $client->fetchEvents($data['startDate'], $data['endDate']); if (count($events) > 0) { return CalendarResponse::create($events); } $error = 'No event was found in your calendar.'; } catch (AuthenticationException $e) { $error = 'Your login or password is incorrect. Please try again.'; } catch (\Exception $e) { $error = 'There was an error (cas.tem-tsp.eu or si-etudiants.it-sudparis.eu might be offline). Please try again later.'; } if (isset($error)) { $form->addError(new FormError($error)); } } } return $app['twig']->render('layout.html.twig', array('form' => $form->createView(), 'startDate' => $startDate, 'endDate' => $endDate, 'formHasErrors' => $form->hasErrors()));