diff --git a/airtime_mvc/application/modules/rest/Bootstrap.php b/airtime_mvc/application/modules/rest/Bootstrap.php index b8575a2cf..3ac5a1891 100644 --- a/airtime_mvc/application/modules/rest/Bootstrap.php +++ b/airtime_mvc/application/modules/rest/Bootstrap.php @@ -21,6 +21,17 @@ class Rest_Bootstrap extends Zend_Application_Module_Bootstrap ); $router->addRoute('podcast-bulk', $podcastBulkRoute); + + $smartblockPodcastRoute = new Zend_Controller_Router_Route( + 'rest/podcast/smartblock', + array( + 'controller' => 'podcast', + 'action' => 'smartblock', + 'module' => 'rest' + ) + ); + $router->addRoute('podcast-smartblock', $smartblockPodcastRoute); + $stationPodcastRoute = new Zend_Controller_Router_Route( 'rest/podcast/station', array( diff --git a/airtime_mvc/application/modules/rest/controllers/PodcastController.php b/airtime_mvc/application/modules/rest/controllers/PodcastController.php index f80b16c34..b3fc38832 100644 --- a/airtime_mvc/application/modules/rest/controllers/PodcastController.php +++ b/airtime_mvc/application/modules/rest/controllers/PodcastController.php @@ -191,6 +191,25 @@ class Rest_PodcastController extends Zend_Rest_Controller $this->_helper->json->sendJson($responseBody); } + + /** + * Endpoint for triggering the generation of a smartblock and playlist to match the podcast name + */ + + public function smartblockAction() { + + $id = $this->_getParam('id', []); + if (!$id) { + return; + } + $podcast = Application_Service_PodcastService::getPodcastById($id); + + logging::info($podcast); + Application_Service_PodcastService::createPodcastSmartblockAndPlaylist($podcast); + } + + + /** * @throws PodcastNotFoundException * diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index b9aecb389..f5abb8590 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -167,6 +167,12 @@ class Application_Service_PodcastService public static function createPodcastSmartblockAndPlaylist($podcast) { + if (is_array($podcast)) { + $newpodcast = new Podcast(); + $newpodcast->fromArray($podcast, BasePeer::TYPE_FIELDNAME); + $podcast = $newpodcast; + } + // Base class $newBl = new Application_Model_Block(); $newBl->setCreator(Application_Model_User::getCurrentUser()->getId()); $newBl->setName($podcast->getDbTitle()); diff --git a/airtime_mvc/application/views/scripts/podcast/podcast.phtml b/airtime_mvc/application/views/scripts/podcast/podcast.phtml index aa2a07603..6c715d8b3 100644 --- a/airtime_mvc/application/views/scripts/podcast/podcast.phtml +++ b/airtime_mvc/application/views/scripts/podcast/podcast.phtml @@ -25,6 +25,11 @@ +