Newscoop\GimmeBundle\Controller\ArticlesListController::createPlaylistAction PHP Method

createPlaylistAction() public method

Create new playlist.
public createPlaylistAction ( Request $request )
$request Symfony\Component\HttpFoundation\Request
    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;
    }