if (!$Episode->aired) { Response::fail('You can only vote on this episode after it has aired.'); } $UserVote = Episodes::getUserVote($Episode); if (!empty($UserVote)) { Response::fail('You already voted for this episode'); } $vote = (new Input('vote', 'int', array(Input::IN_RANGE => [1, 5], Input::CUSTOM_ERROR_MESSAGES => array(Input::ERROR_MISSING => 'Vote value missing from request', Input::ERROR_RANGE => 'Vote value must be an integer between @min and @max (inclusive)'))))->out(); if (!$Database->insert('episodes__votes', array('season' => $Episode->season, 'episode' => $Episode->episode, 'user' => $currentUser->id, 'vote' => $vote))) { Response::dbError(); } $Episode->updateScore(); Response::done(array('newhtml' => Episodes::getSidebarVoting($Episode))); break; case "videos": Response::done(Episodes::getVideoEmbeds($Episode)); break; case "getvideos": $return = array('twoparter' => $Episode->twoparter, 'vidlinks' => array(), 'fullep' => array(), 'airs' => date('c', strtotime($Episode->airs))); /** @var $Vids EpisodeVideo[] */ $Vids = $Database->whereEp($Episode)->get('episodes__videos'); foreach ($Vids as $part => $vid) { if (!empty($vid->id)) { $return['vidlinks']["{$vid->provider}_{$vid->part}"] = VideoProvider::getEmbed($vid, VideoProvider::URL_ONLY); } if ($vid->fullep) { $return['fullep'][] = $vid->provider; } } Response::done($return); break;