$redirectUrl = "../views/my_sold_auctions_view.php"; } // Validate feedback input $feedback = ["score" => $_POST["score"], "comment" => $_POST["comment"]]; if (ValidationOperator::hasEmtpyFields($feedback)) { // Create a session for all inputs so that they can be recovered after the page returns SessionOperator::setFormInput($feedback); // Redirect back HelperOperator::redirectTo($redirectUrl); } $auctionId = $_POST["auctionId"]; $creatorId = SessionOperator::getUser()->getUserId(); //get the id of receiver $receiverUsername = $_POST["receiverUsername"]; /* @var DbUser $receiver */ $receiver = DbUser::withConditions("WHERE username = '******'")->first(); //check receiver exists AND there is no existing feedback (we only allow one) if ($receiver == null or DbFeedback::withConditions("WHERE auctionId = " . $auctionId . " AND creatorId = " . $creatorId . " AND receiverId = " . $receiver->getId())->exists()) { HelperOperator::redirectTo($redirectUrl); } // Create Feedback $now = new DateTime("now", new DateTimeZone(TIMEZONE)); $feedback = new DbFeedback(array("auctionId" => $_POST["auctionId"], "creatorId" => SessionOperator::getUser()->getUserId(), "receiverId" => $receiver->getId(), "score" => $_POST["score"], "comment" => $_POST["comment"], "time" => $now->format('Y-m-d H:i:s'))); $feedback->create(); // Notify receiver $auction = DbAuction::find($auctionId); $item = DbItem::find($auction->getField("itemId")); $comment = "You received a feedback from \"" . SessionOperator::getUser()->getUserName() . "\" in your participation in \""; $comment .= $item->getField("itemName") . " - " . $item->getField("itemBrand") . "\"."; QueryOperator::addNotification($receiver->getId(), $comment, QueryOperator::NOTIFICATION_FEEDBACK_RECEIVED); // Set feedback session
public static function getFeedback($username) { // Retrieve user feedback statistics $userId = DbUser::withConditions("WHERE username = '******'")->get(array("userId"))[0]["userId"]; $scores = []; for ($index = 1; $index <= 5; $index++) { $scores[] = self::getFeedbackScores($userId, $index); } // Retrieve feedbacks $feedbackAsSeller = self::getFeedbacks($userId, self::ROLE_SELLER); $feedbackAsBuyer = self::getFeedbacks($userId, self::ROLE_BUYER); $advancedFeedback = new AdvancedFeedback($scores, $feedbackAsSeller, $feedbackAsBuyer); return $advancedFeedback; }