/**
  * @Route("/import-playlist", name="_importPlaylist")
  * @Template()
  */
 public function importAction()
 {
     $this->initialize();
     $request = $this->getRequest();
     $data = array();
     if ($request->getSession()->get('token')) {
         if ($request->isXmlHttpRequest()) {
             $playlistIds = $request->request->get('playlistIds');
             $em = $this->getDoctrine()->getManager();
             $playlistQuery = new PlaylistQuery($em);
             $playlistItemQuery = new PlaylistItemQuery($em);
             foreach ($playlistIds as $id) {
                 $playlist = new Playlist();
                 $playlist->setName($this->get('youtubePlaylist')->setId($id)->getSingleResult()->snippet->title)->setPrivate(false)->setUser($this->getUser())->setCreationDate(new \DateTime());
                 $playlistQuery->persist($playlist);
                 $results = $this->get('youtubePlaylistItems')->setIdPlaylist($id)->getResults();
                 foreach ($results->items as $item) {
                     $playlistItem = new Playlistitem();
                     $playlistItem->setPlaylist($playlist)->setIdVideo($item->snippet->resourceId->videoId)->getVideoInformation($this->get('youtubeVideo'));
                     $playlistItemQuery->persist($playlistItem);
                 }
             }
             $data['playlistImported'] = true;
         } else {
             $this->client->setAccessToken($request->getSession()->get('token'));
             $youtube = new apiYouTubeService($this->client);
             $playlists = $youtube->playlists->listPlaylists('snippet', array('mine' => 'true', 'maxResults' => 20));
             $data['playlists'] = $playlists;
         }
     } else {
         $this->initialize();
         $state = mt_rand();
         $this->client->setState($state);
         $request->getSession()->set('stateYoutube', $state);
         $authUrl = $this->client->createAuthUrl();
         $data['authUrl'] = $authUrl;
     }
     return $data;
 }
Пример #2
0
 /**
  * @param Playlist $entity
  */
 public function preRemove($entity)
 {
     $this->deleteKeyCache('playlist_all');
     $this->deleteKeyCache('playlist_unprivate');
     $this->deleteKeyCache('playlist_' . $entity->getId());
 }