public function createPlaylistAction(Request $request)
{
$user = $this->container->get('user')->getCurrentUser();
if (!$user->hasPermission('ManagePlaylist')) {
throw new AccessDeniedException('You do not have the right to manage playlists.');
}
$em = $this->container->get('em');
$playlist = new Playlist();
$form = $this->createForm(new PlaylistType(), $playlist);
$form->handleRequest($request);
if ($form->isValid()) {
$existingPlaylist = $em->getRepository('Newscoop\\Entity\\Playlist')->getPlaylistByTitle($playlist->getName())->getOneOrNullResult();
if ($existingPlaylist) {
throw new ResourcesConflictException('Playlist with that name already exists', 409);
}
$em->persist($playlist);
$em->flush();
$view = FOSView\View::create($playlist, 200);
$view->setHeader('X-Location', $this->generateUrl('newscoop_gimme_articles_lists_getlist', array('id' => $playlist->getId()), true));
return $view;
}
return $form;
}