/** * @param $auction DbAuction * @param $userIds array * @param int $numWatches */ function addWatches($auction, &$userIds, $numWatches = 1) { global $faker; for ($i = 0; $i < $numWatches; $i++) { $userId = $faker->randomElement($userIds); $auctionWatch = new DbAuctionWatch(array("userId" => $userId, "auctionId" => $auction->getId())); $auctionWatch->create(); $key = array_search($userId, $userIds); unset($userIds[$key]); } }
break; } } $auction = QueryOperator::getLiveAuction($auctionId); $bids = QueryOperator::getAuctionBids($auction->getAuctionId()); $watches = QueryOperator::getAuctionWatches($auction->getAuctionId()); $isMyAuction = $auction->getSellerUsername() == SessionOperator::getUser()->getUsername(); //increment num_views of auction on database $dbAuction = DbAuction::find($auctionId); $dbAuction->setField("views", $dbAuction->getField("views") + 1); $dbAuction->save(); //increment views displayed on page $views = $auction->getViews() + 1; //is user watching this auction $user = SessionOperator::getUser(); $alreadyWatching = DbAuctionWatch::withConditions("WHERE userId = " . $user->getUserId() . " AND auctionId =" . $auctionId)->exists(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title><?php echo $auction->getItemName() . " | AuctionHouse"; ?>
<?php require_once "../classes/class.helper_operator.php"; require_once "../classes/class.session_operator.php"; require_once "../classes/class.validation_operator.php"; require_once "../classes/class.query_operator.php"; require_once "../classes/class.db_auction_watch.php"; /* @var User $user*/ $user = SessionOperator::getUser(); $auctionId = $_GET["liveAuction"]; if (!is_numeric($auctionId)) { HelperOperator::redirectTo("../views/open_live_auction_view.php?" . $_SERVER['QUERY_STRING']); } // Check user hasn't already watched $alreadyWatching = DbAuctionWatch::withConditions("WHERE userId = " . $user->getUserId() . " AND auctionId =" . $auctionId)->exists() ? true : false; if ($alreadyWatching) { HelperOperator::redirectTo("../views/open_live_auction_view.php?" . $_SERVER['QUERY_STRING']); } // Create an auction_watch $watch = new DbAuctionWatch(array("userId" => $user->getUserId(), "auctionId" => $auctionId)); // Add to watch list $watch->create(); // Set feedback session SessionOperator::setNotification(SessionOperator::CREATED_WATCH); HelperOperator::redirectTo("../views/open_live_auction_view.php?" . $_SERVER['QUERY_STRING']);
<?php require_once "../classes/class.helper_operator.php"; require_once "../classes/class.session_operator.php"; require_once "../classes/class.validation_operator.php"; require_once "../classes/class.query_operator.php"; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/class.db_auction.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/class.db_auction_watch.php'; $watchId = $_GET["id"]; // Prevent sql injection if (!is_numeric($watchId)) { HelperOperator::redirectTo("../views/my_watch_list_view.php"); } /* @var User $user */ $userId = SessionOperator::getUser()->getUserId(); /* @var DbAuctionWatch $auction */ $watch = DbAuctionWatch::find($watchId); // User owns watch if ($watch->getField("userId") == $userId) { // Delete watch $watch->delete(); // Set feedback session SessionOperator::setNotification(SessionOperator::DELETED_WATCH); } HelperOperator::redirectTo("../views/my_watch_list_view.php");