Example #1
2
/**
 * @license http://opensource.org/licenses/lgpl-3.0.html
 * @author Matthew McNaney <mcnaney at gmail dot com>
 */
function tailgate_install(&$content)
{
    $db = Database::newDB();
    $db->begin();
    try {
        $game = new \tailgate\Resource\Game();
        $t1 = $game->createTable($db);
        $lot = new \tailgate\Resource\Lot();
        $t2 = $lot->createTable($db);
        $lottery = new \tailgate\Resource\Lottery();
        $t3 = $lottery->createTable($db);
        $spot = new \tailgate\Resource\Spot();
        $t4 = $spot->createTable($db);
        $student = new \tailgate\Resource\Student();
        $t5 = $student->createTable($db);
        $visitor = new \tailgate\Resource\Visitor();
        $t6 = $visitor->createTable($db);
    } catch (\Exception $e) {
        $db->buildTable('tg_game')->drop(true);
        $db->buildTable('tg_lot')->drop(true);
        $db->buildTable('tg_lottery')->drop(true);
        $db->buildTable('tg_spot')->drop(true);
        $db->buildTable('tg_student')->drop(true);
        $db->buildTable('tg_visitor')->drop(true);
        $db->rollback();
        throw $e;
    }
    $db->commit();
    $content[] = 'Tables created';
    return true;
}
Example #2
0
 public function apply($student_id, $game_id)
 {
     $lotteryCheck = $this->getByStudentId($student_id);
     if (!empty($lotteryCheck)) {
         throw new \Exception('Already applied to this lottery');
     }
     $now = time();
     $game = new \tailgate\Resource\Game();
     $game->setId($game_id);
     $gameFactory = new GameFactory();
     if (!$gameFactory->loadByID($game)) {
         throw new \Exception('Game does not exist.');
     }
     if ($game->getSignupStart() > $now) {
         throw new \Exception('Signup period has not started.');
     }
     if ($game->getSignupEnd() < $now) {
         throw new \Exception('Signup period is over.');
     }
     if ($game->getCompleted()) {
         throw new \Exception('This game lottery is complete. No more applications are allowed.');
     }
     $lottery = new Resource();
     $lottery->setGameId($game_id);
     $lottery->setStudentId($student_id);
     self::saveResource($lottery);
 }