public static function post() { $ticketId = self::pullPostInteger('ticketId'); $singleId = self::pullPostInteger('singleId'); $ticket = self::build($ticketId, new Resource()); if (!$ticketId) { $single = Single::build($singleId, new \election\Resource\Single()); $electionId = $single->getElectionId(); if (!Election::allowChange($electionId)) { throw new \Exception('Cannot create new ticket in ongoing election'); } } $ticket->setSingleId($singleId); $ticket->setTitle(self::pullPostString('title')); $ticket->setPlatform(self::pullPostString('platform')); $siteAddress = self::pullPostString('siteAddress'); if (!empty($siteAddress)) { if (!preg_match('@^https?:\\/\\/@', $siteAddress)) { $siteAddress = 'http://' . $siteAddress; } } $ticket->setSiteAddress($siteAddress); self::saveResource($ticket); }