Exemplo n.º 1
0
 public static function createEmptyDocument(array $params)
 {
     $defaults = array('content' => "New Document Content", 'sponsor' => null, 'sponsorType' => null, 'publish_state' => 'unpublished');
     $params = array_replace_recursive($defaults, $params);
     if (is_null($params['sponsor'])) {
         throw new \Exception("Sponsor Param Required");
     }
     $document = new Doc();
     \DB::transaction(function () use($document, $params) {
         $document->title = $params['title'];
         $document->publish_state = $params['publish_state'];
         $document->save();
         switch ($params['sponsorType']) {
             case static::SPONSOR_TYPE_INDIVIDUAL:
                 $document->userSponsor()->sync(array($params['sponsor']));
                 break;
             case static::SPONSOR_TYPE_GROUP:
                 $document->groupSponsor()->sync(array($params['sponsor']));
                 break;
             default:
                 throw new \Exception("Invalid Sponsor Type");
         }
         $template = new DocContent();
         $template->doc_id = $document->id;
         $template->content = "New Document Content";
         $template->save();
         $document->init_section = $template->id;
         $document->save();
     });
     Event::fire(MadisonEvent::NEW_DOCUMENT, $document);
     return $document;
 }