Beispiel #1
0
 /**
  *
  * @param WOOOF $wo
  * @param string $requestorUserId = ''
  * @param bool $isUserLoggedIn
  * @param string $sortCriteria = ''
  * @param string $targetUserId = ''
  * @return array of movies
  */
 public static function getMovies(WOOOF $wo, $requestorUserId = '', $isUserLoggedIn, $sortCriteria = '', $targetUserId = '')
 {
     $place = __CLASS__ . '::' . __FUNCTION__;
     $wo->debug("{$place}:  Get Movies");
     $movies = [];
     $movieElems = ['MUM_id', 'MUM_movieramaUserId', 'MUM_title', 'MUM_description', 'MUM_publishDateTime', 'MUM_noOfLikes', 'MUM_noOfHates', 'VUS_username', 'VUS_avatarImg', 'PPR_firstName', 'PPR_lastName'];
     $tblViewMovieRamaUserMovies = new WOOOF_dataBaseTable($wo->db, 'v_movierama_user_movies');
     if (!$tblViewMovieRamaUserMovies->constructedOk) {
         return false;
     }
     //movies from all users
     if (!$wo->hasContent($targetUserId)) {
         //all movies without sorting filter
         if (!$wo->hasContent($sortCriteria)) {
             $result = $wo->db->query("SELECT * FROM v_movierama_user_movies");
         } else {
             $result = $wo->db->query("SELECT * FROM v_movierama_user_movies ORDER BY {$sortCriteria} DESC");
         }
     } else {
         //all movies from a user without sorting filter
         if (!$wo->hasContent($sortCriteria)) {
             $result = $wo->db->query("SELECT * FROM v_movierama_user_movies WHERE MUM_movieramaUserId='{$targetUserId}'");
         } else {
             $result = $wo->db->query("SELECT * FROM v_movierama_user_movies WHERE MUM_movieramaUserId='{$targetUserId}' ORDER BY {$sortCriteria} DESC");
         }
     }
     if ($result === FALSE) {
         return false;
     }
     if (!$wo->db->getNumRows($result)) {
         //no error no results
         return [];
     } else {
         //no error results
         while ($row = $wo->db->fetchAssoc($result)) {
             $tblViewMovieRamaUserMovies->resultRows[] = $row;
         }
     }
     $ids = [];
     //not logged in
     if ($isUserLoggedIn === 'false') {
         foreach ($tblViewMovieRamaUserMovies->resultRows as $v_movie) {
             $movie = [];
             $movieId = $v_movie['MUM_id'];
             WOOOF_Util::filterOnKeys($movie, $movieElems, $v_movie);
             $movie['isType'] = 'MOV';
             $movies[$movieId] = $movie;
         }
         //convert the associative array to a simple array to come back to the frontend
         $movies = array_values($movies);
         return $movies;
     } else {
         foreach ($tblViewMovieRamaUserMovies->resultRows as $v_movie) {
             $movie = [];
             $movieId = $v_movie['MUM_id'];
             WOOOF_Util::filterOnKeys($movie, $movieElems, $v_movie);
             $movie['isType'] = 'MOV';
             $isUserMovieCreator = self::isUserMovieCreator($wo, $wo->app->userId, $v_movie['MUM_id']);
             if ($isUserMovieCreator === FALSE) {
                 return false;
             }
             if ($isUserMovieCreator === '1') {
                 $movie['isSelfMovieCreator'] = true;
             } else {
                 $movie['isSelfMovieCreator'] = false;
             }
             $hasRunningEvals = VO_Evaluation::hasRunningEvaluations($wo, $movieId, 'MOV', $wo->app->userId);
             if ($hasRunningEvals === FALSE) {
                 return false;
             }
             $runningEvalId = '';
             if ($hasRunningEvals === 1) {
                 //go get last running evaluation id
                 $runningEvalId = VO_Evaluation::getLastRunningEvaluation($wo, $movieId, 'MOV', $wo->app->userId);
                 if ($runningEvalId === FALSE) {
                     return false;
                 }
             }
             $movie['hasRunningEvals'] = $hasRunningEvals;
             $movie['runningEvalId'] = $runningEvalId;
             $movies[$movieId] = $movie;
         }
         //pass the keys from $movies to $ids
         $ids = array_keys($movies);
         //make the opinions array
         $opinionInfoArray = self::getOpinionsInfo($wo, $wo->app->userId, $ids);
         if ($opinionInfoArray === false) {
             return false;
         }
         //merge the movies array (with main info) with the opinions array
         foreach ($movies as $aKey => &$aMovie) {
             $aMovie['opinions'] = $opinionInfoArray[$aKey];
         }
         //convert the associative array to a simple array to come back to the frontend
         $movieOpinions = array_values($movies);
         //return $movieOpinions;
         return $movieOpinions;
     }
 }
 /**
  *
  * @param WOOOF $wo
  * @param array $in [array of user answers to eval criteria]
  * @return false | [ 'evaluationSavedOk' => bool, 'evaluationSavedForEvalId' => string ]
  */
 public static function submitEvaluation(WOOOF $wo, $in)
 {
     $place = __CLASS__ . '::' . __FUNCTION__;
     if ($wo->userData['id'] == '0123456789') {
         $wo->handleShowStopperError('505');
     }
     if (!$wo->hasContent($in)) {
         $wo->logError(self::_ECP . "1226 You must provide data to submit an evaluation");
         return false;
     }
     $res = VO_Evaluation::submitEval($wo, $in, $wo->app->userId);
     if ($res === FALSE) {
         $out = ['evaluationSavedOk' => false, 'errors' => $wo->getErrorsAsArrayAndClear()];
         $wo->db->rollback();
     } else {
         $out = ['evaluationSavedOk' => true, 'evaluationSavedForEvalId' => $res];
         $wo->db->commit();
     }
     return $out;
 }