示例#1
0
 /**
  * @param $project_id
  * @param bool $force
  *
  * @return Video
  * @throws Swf2VidError
  */
 public function queueProject($project_id, $force = false)
 {
     if ($project = Project::find($project_id)) {
         if (($credits = $this->getVideoCredits($project->user_id)) || $force) {
             Video::update_all(['set' => ['vid_status' => 'ignore'], 'conditions' => ['project_id = ? and vid_status = ?', $project_id, 'pending']]);
             return Video::create_direct(['user_id' => $project->user_id, 'project_id' => $project_id, 'vid_status' => 'pending']);
         } else {
             App::getInstance()->dispatch(Swf2VidEvent::VIDEO_NO_CREDITS, new Swf2VidEvent($project->user_id, $project));
             throw new Swf2VidError("Out of credits");
         }
     } else {
         throw new Swf2VidError("Project not found", $project_id);
     }
 }