Exemplo n.º 1
0
 public static function updateReview()
 {
     // Process updating review
     $reviews = ReviewsDB::getReviewsBy('reviewId', $_SESSION['arguments']);
     if (empty($reviews)) {
         HomeView::show();
         header('Location: /' . $_SESSION['base']);
     } elseif ($_SERVER["REQUEST_METHOD"] == "GET") {
         $_SESSION['reviews'] = $reviews;
         ReviewView::showUpdate();
     } else {
         $parms = $reviews[0]->getParameters();
         $parms['score'] = array_key_exists('score', $_POST) ? $_POST['score'] : $reviews[0]->getScore();
         $parms['review'] = array_key_exists('review', $_POST) ? $_POST['review'] : $reviews[0]->getReview();
         $newReview = new Review($parms);
         $newReview->setReviewId($reviews[0]->getReviewId());
         $review = ReviewsDB::updateReview($newReview);
         if ($review->getErrorCount() != 0) {
             $_SESSION['reviews'] = array($newReview);
             ReviewView::showUpdate();
         } else {
             HomeView::show();
             header('Location: /' . $_SESSION['base']);
         }
     }
 }
Exemplo n.º 2
0
 public function testGetAllReviews()
 {
     $myDb = DBMaker::create('ptest');
     Database::clearDB();
     $db = Database::getDB('ptest', 'C:\\xampp\\myConfig.ini');
     $reviews = ReviewsDB::getAllReviews();
     $this->assertEquals(6, count($reviews), 'It should fetch all of the reviews in the test database');
     foreach ($reviews as $review) {
         $this->assertTrue(is_a($review, 'Review'), 'It should return valid Review objects');
     }
 }
Exemplo n.º 3
0
 public function testGetReviewByReviewerName()
 {
     $myDb = DBMaker::create('ptest');
     Database::clearDB();
     $db = Database::getDB('ptest', 'C:\\xampp\\myConfig.ini');
     $reviews = ReviewsDB::getReviewsBy('reviewerName', 'Alice');
     $this->assertEquals(count($reviews), 3, 'Alice should have three reviews');
     foreach ($reviews as $review) {
         $this->assertTrue(is_a($review, "Review"), 'The returned values should be Review objects');
         $this->assertTrue(empty($review->getErrors()), "The returned reviews should have no errors");
     }
 }
 public static function show()
 {
     $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0;
     $user = $_SESSION['user'];
     if (!is_null($user)) {
         $_SESSION['user'] = $user;
         $_SESSION['userSubmissions'] = SubmissionsDB::getSubmissionsBy('submitterName', $user->getUserName());
         $_SESSION['userReviews'] = ReviewsDB::getReviewsBy('reviewerName', $user->getUserName());
         UserView::show();
     } else {
         HomeView::show();
     }
 }
Exemplo n.º 5
0
 public static function getAllReviews()
 {
     // Return all of the reviews as an array of Review objects
     $query = "SELECT Reviews.reviewId, Reviews.submissionId, Users.userName,\r\n\t   \t\t            Reviews.score, Reviews.review \r\n\t   \t\t             FROM Reviews LEFT JOIN Users ON Reviews.userId = Users.userId ";
     $reviews = array();
     try {
         $db = Database::getDB();
         $statement = $db->prepare($query);
         $statement->execute();
         $reviews = ReviewsDB::getReviewsArray($statement->fetchAll(PDO::FETCH_ASSOC));
         $statement->closeCursor();
     } catch (PDOException $e) {
         // Not permanent error handling
         echo "<p>Error getting all reviews " . $e->getMessage() . "</p>";
     }
     return $reviews;
 }
Exemplo n.º 6
0
 public static function updateReview($review)
 {
     // Update a review
     try {
         $db = Database::getDB();
         if (is_null($review) || $review->getErrorCount() > 0) {
             return $review;
         }
         $checkReview = ReviewsDB::getReviewsBy('reviewId', $review->getReviewId());
         if (empty($checkReview)) {
             $review->setError('reviewId', 'REVIEW_DOES_NOT_EXIST');
         } elseif ($checkReview[0]->getSubmissionId() != $review->getSubmissionId()) {
             $review->setError('reviewId', 'REVIEW_HAS_WRONG_SUBMISSION_ID');
         } elseif ($checkReview[0]->getreviewerName() != $review->getReviewerName()) {
             $review->setError('reviewId', 'REVIEWER_NAME_DOES_NOT_MATCH');
         }
         if ($review->getErrorCount() > 0) {
             return $review;
         }
         $query = "UPDATE Reviews SET review = :review, score = :score\r\n\t    \t\t\t                 WHERE reviewId = :reviewId";
         $statement = $db->prepare($query);
         $statement->bindValue(":review", $review->getReview());
         $statement->bindValue(":score", $review->getScore());
         $statement->bindValue(":reviewId", $review->getReviewId());
         $statement->execute();
         $statement->closeCursor();
     } catch (Exception $e) {
         // Not permanent error handling
         $review->setError('reviewId', 'REVIEW_COULD_NOT_BE_UPDATED');
     }
     return $review;
 }
Exemplo n.º 7
0
 public static function getReviewValuesBy($column, $type = null, $value = null)
 {
     // Returns the $column of Reviews whose $type field has value $value
     $reviewRows = ReviewsDB::getReviewRowSetsBy($type, $value);
     return ReviewsDB::getReviewValues($reviewRows, $column);
 }
Exemplo n.º 8
0
Database::clearDB();
$db = Database::getDB('ptest', 'C:\\xampp\\myConfig.ini');
$beforeCount = count(ReviewsDB::getReviewsBy());
$reviews = ReviewsDB::getReviewsBy('reviewId', 1);
$currentReview = $reviews[0];
echo "Current review: {$currentReview}<br>";
$parms = $currentReview->getParameters();
$parms['review'] = 'new review text';
$newReview = new Review($parms);
$newReview->setReviewId($currentReview->getReviewId());
$updatedReview = ReviewsDB::updateReview($newReview);
echo "Updated review: {$updatedReview}<br>";
$afterCount = count(ReviewsDB::getReviewsBy());
echo "<br>Count before update = {$beforeCount}<br>";
echo "Count after = {$afterCount}<br>";
?>

 <h2>It should get a review by reviewer name</h2>
<?php 
DBMaker::create('ptest');
Database::clearDB();
$db = Database::getDB('ptest', 'C:\\xampp\\myConfig.ini');
$reviews = ReviewsDB::getReviewsBy('reviewerName', 'Alice');
echo "<br>Number of reviews by Alice is " . count($reviews);
foreach ($reviews as $review) {
    echo "<br>Review: {$review}<br>";
}
?>

</body>
</html>
Exemplo n.º 9
0
<?php 
include_once "../models/Database.class.php";
include_once "../models/Messages.class.php";
include_once "../models/Review.class.php";
include_once "../models/ReviewsDB.class.php";
include_once "../models/Submission.class.php";
include_once "../models/SubmissionsDB.class.php";
include_once "../models/User.class.php";
include_once "../models/UsersDB.class.php";
include_once "./makeDB.php";
?>


<h2>It should get all reviews from a test database</h2>
<?php 
makeDB('ptest');
Database::clearDB();
$db = Database::getDB('ptest');
$reviews = ReviewsDB::getAllReviews();
$reviewCount = count($reviews);
echo "Number of reviews in db is: {$reviewCount} <br>";
foreach ($reviews as $review) {
    echo "{$review} <br>";
}
?>
	


</body>
</html>