function __construct()
 {
     global $configs;
     $this->baseUrl = $configs["COLLAP_BASE_URL"];
     $this->jobsBaseUrl = $configs["JOBS_COLLAP_BASE_URL"];
     $this->url = rtrim($this->baseUrl, "/") . $_SERVER[REQUEST_URI];
     global $logger;
     $this->logger = $logger;
     $this->logger->debug("BaseController started");
     if (isset($_SESSION["user_id"])) {
         $this->userId = $_SESSION["user_id"];
         $this->username = $_SESSION["username"];
         $this->firstName = $_SESSION['first_name'];
         $this->lastName = $_SESSION['last_name'];
     }
     $DAOFactory = new DAOFactory();
     $this->challengesDAO = $DAOFactory->getChallengesDAO();
     $this->projectsDAO = $DAOFactory->getProjectsDAO();
     $this->userInfoDAO = $DAOFactory->getUserInfoDAO();
     $this->userSkillDAO = $DAOFactory->getSkillsDAO();
     $this->challengeResponsesDAO = $DAOFactory->getChallengeResponsesDAO();
     $this->projectResponsesDAO = $DAOFactory->getProjectResponsesDAO();
     $this->teamsDAO = $DAOFactory->getTeamsDAO();
     $this->notificationsDAO = $DAOFactory->getNotificationsDAO();
     $this->userEducationDAO = $DAOFactory->getEducationDAO();
     $this->userTechStrengthDAO = $DAOFactory->getTechnicalStrengthDAO();
     $this->userWorkHistoryDAO = $DAOFactory->getWorkingHistoryDAO();
     $this->userJobPreferenceDAO = $DAOFactory->getJobPreferenceDAO();
     $this->userSkillsInsertDAO = $DAOFactory->getUserSkillsDAO();
     $this->jobLocationsDAO = $DAOFactory->getWorkingLocationsDAO();
     $this->userPreferredLocationsDAO = $DAOFactory->getUserLocationsDAO();
     $this->involveInDAO = $DAOFactory->getInvolveInDAO();
     $this->userSocialLinksDAO = $DAOFactory->getUserSocialLinksDAO();
     $this->collaborativeRoleDAO = $DAOFactory->getUserCollaborativeRoleDAO();
     $this->userPushFormsDAO = $DAOFactory->getFormsDAO();
     $this->userPushFormsInsertDAO = $DAOFactory->getUserFormsDAO();
     $this->userAccessAidDAO = $DAOFactory->getUserAccessAidDAO();
     $this->process();
 }
 /**
  * Get project activities records from table challenge AND user_info
  */
 public function getProjectActivities($projectId, $start, $limit)
 {
     $sql = "(SELECT challenge.user_id, challenge.id, challenge.project_id, challenge.title, challenge.stmt, challenge.type, challenge.status, challenge.likes, challenge.dislikes, challenge.creation_time, challenge.last_update_time,\r\n\t\t\t\t\t\tuser.first_name, user.last_name, user.username \r\n\t\t\t\t\tFROM challenges as challenge JOIN user_info as user JOIN projects as project \r\n\t\t\t\t\t\tWHERE challenge.project_id = ? AND challenge.status != 3 \r\n\t\t\t\t\t\t\tAND challenge.status != 7 AND user.id = challenge.user_id \r\n\t\t\t\t\t\t\tAND challenge.blob_id = 0 AND challenge.project_id = project.id)\r\n\t\t\t\tUNION\r\n\t\t\t\t(SELECT challenge.user_id, challenge.id, challenge.project_id, challenge.title, blob.stmt, challenge.type, challenge.status, challenge.likes, challenge.dislikes, challenge.creation_time, challenge.last_update_time,\r\n\t\t\t\t\t\tuser.first_name, user.last_name, user.username \r\n\t\t\t\t\tFROM challenges as challenge JOIN user_info as user JOIN blobs as `blob`  JOIN projects as project\r\n\t\t\t\t\t\tWHERE challenge.project_id = ? AND challenge.status != 3 \r\n\t\t\t\t\t\t\tAND challenge.status != 7 AND user.id = challenge.user_id \r\n\t\t\t\t\t\t\tAND challenge.blob_id = blob.id AND challenge.project_id = project.id)\r\n\t\t\t\tORDER BY last_update_time DESC ";
     if (isset($start) && isset($limit)) {
         $sql .= " LIMIT {$start},{$limit} ;";
     } else {
         $sql .= ";";
     }
     $sqlQuery = new SqlQuery($sql);
     $sqlQuery->setNumber($projectId);
     $sqlQuery->setNumber($projectId);
     $projectActivitities = $this->getListChallenge($sqlQuery);
     $DAOFactory = new DAOFactory();
     $challengeResponsesDAO = $DAOFactory->getChallengeResponsesDAO();
     foreach ($projectActivitities as $activity) {
         if ($activity) {
             $activity->setResponses($challengeResponsesDAO->getResponses($activity->getId()));
         }
     }
     return $projectActivitities;
 }
 public function __construct()
 {
     $DAOFactory = new DAOFactory();
     $this->collapDAO = $DAOFactory->getChallengeResponsesDAO();
 }