Exemple #1
0
function processPendingReviewsNotifications()
{
    // Check if it is time to process notifications
    if (!isset($_REQUEST['force']) && !canProcessNotifications()) {
        return;
    }
    // process pending journal notifications
    $pendingReviews = Review::getReviewsWithPendingJournalNotifications();
    if ($pendingReviews !== false && count($pendingReviews) > 0) {
        echo "<br/>Processing " . count($pendingReviews) . " reviews.";
        foreach ($pendingReviews as $review) {
            $tReview = new Review();
            $tReview->loadById($review['reviewer_id'], $review['reviewee_id']);
            if ($tReview->journal_notified == 0) {
                Utils::sendReviewNotification($tReview->reviewee_id, 'update', $tReview->getReviews($tReview->reviewee_id, $tReview->reviewer_id, ' AND r.reviewer_id=' . $tReview->reviewer_id));
            } else {
                Utils::sendReviewNotification($tReview->reviewee_id, 'new', $tReview->getReviews($tReview->reviewee_id, $tReview->reviewer_id, ' AND r.reviewer_id=' . $tReview->reviewer_id));
            }
            $tReview->journal_notified = 1;
            $tReview->save('reviewer_id', 'reviewee_id');
            usleep(4000000);
        }
    } else {
        echo "<br />Processed. No pending Reviews.";
    }
    resetCronFile();
}
Exemple #2
0
 public function review($id)
 {
     $this->view = null;
     try {
         Utils::checkLogin();
         $user = User::find($id);
         $currentUser = User::find(Session::uid());
         if (!$user->getId() || $user->getId() == $currentUser->getId()) {
             throw new Exception('Invalid user id');
         }
         $review = new Review();
         if ($_SERVER['REQUEST_METHOD'] == 'POST') {
             $userReview = trim($_POST['userReview']);
             if ($review->loadById($currentUser->getId(), $user->getId())) {
                 if (!$userReview) {
                     $oReview = $review->getReviews($user->getId(), $currentUser->getId(), ' AND r.reviewer_id=' . $reviewer_id);
                     $cond = 'reviewer_id = ' . $currentUser->getId() . ' AND reviewee_id = ' . $user->getId();
                     if (!$review->removeRow($cond)) {
                         throw new Exception('Cannot delete review! Please retry later');
                     }
                     Utils::sendReviewNotification($user->getId(), "delete", $oReview);
                     $message = 'Review deleted';
                 } else {
                     if (!strcmp($review->review, $userReview)) {
                         throw new Exception('No changes made');
                     }
                     $review->review = $userReview;
                     $review->journal_notified = 0;
                     if (!$review->save('reviewer_id', 'reviewee_id')) {
                         throw new Exception('Cannot update review! Please retry later');
                     }
                     $message = 'Review updated';
                 }
             } else {
                 if (!$userReview) {
                     throw new Exception('New empty review is not saved');
                 }
                 if (!$review->insertNew(array('reviewer_id' => $currentUser->getId(), 'reviewee_id' => $user->getId(), 'review' => $userReview, 'journal_notified' => -1))) {
                     throw new Exception('Cannot create new review! Please retry later');
                 }
                 $myReview = $review->getReviews($user->getId(), $currentUser->getId(), ' AND r.reviewer_id = ' . $currentUser->getId());
                 if (count($myReview) == 0) {
                     $cond = 'reviewer_id = ' . $currentUser->getId() . ' AND reviewee_id = ' . $user->getId();
                     $review->removeRow($cond);
                     throw new Exception('Review with no paid fee is not allowed');
                 }
                 $message = 'Review saved';
             }
         } else {
             $userReview = $message = '';
             if ($review->loadById($currentUser->getId(), $user->getId())) {
                 $userReview = $review->review;
             }
         }
         echo json_encode(array('success' => true, 'message' => $message, 'myReview' => $userReview));
     } catch (Exception $e) {
         echo json_encode(array('success' => false, 'message' => $e->getMessage()));
     }
 }