public static function updateUserData()
 {
     $userDataArray = UserDataDB::getUserDataBy('userDataId', $_SESSION['arguments']);
     if (empty($userDataArray)) {
         HomeView::show();
         header('Location: /' . $_SESSION['base']);
     } elseif ($_SERVER["REQUEST_METHOD"] == "GET") {
         $_SESSION['userData'] = $userDataArray[0];
         UserDataView::showUpdate();
     } else {
         $userData = $userDataArray[0];
         $parms = $userData->getParameters();
         $parms['userId'] = array_key_exists('userId', $_POST) ? $_POST['userId'] : $userData->getUserId();
         $parms['user_name'] = array_key_exists('user_name', $_POST) ? $_POST['user_name'] : "";
         $parms['skill_level'] = array_key_exists('skill_level', $_POST) ? $_POST['skill_level'] : "";
         $parms['skill_areas'] = array_key_exists('skill_areas', $_POST) ? $_POST['skill_areas'] : array();
         $parms['profile_pic'] = array_key_exists('profile_pic', $_POST) ? $_POST['profile_pic'] : "";
         $parms['started_hobby'] = array_key_exists('started_hobby', $_POST) ? $_POST['started_hobby'] : "";
         $parms['fav_color'] = array_key_exists('fav_color', $_POST) ? $_POST['fav_color'] : "";
         $parms['url'] = array_key_exists('url', $_POST) ? $_POST['url'] : "";
         $parms['phone'] = array_key_exists('phone', $_POST) ? $_POST['phone'] : "";
         $newUserData = new UserData($parms);
         $newUserData->setUserDataId($userData->getUserDataId());
         $userDataEntry = UserDataDB::updateUserData($newUserData);
         if ($userDataEntry->getErrorCount() != 0) {
             $_SESSION['userData'] = array($newUserData);
             //return;
             UserDataView::showUpdate();
         } else {
             HomeView::show();
             header('Location: /' . $_SESSION['base']);
         }
     }
 }
 public static function getUserDataArray($rowSets)
 {
     $usersData = array();
     if (!empty($rowSets)) {
         foreach ($rowSets as $userDataRow) {
             $userData = new UserData($userDataRow);
             $userDataId = $userDataRow['userDataId'];
             // The UserData constructor does not set the userDataId for
             // a new UserData object; the UserData table takes care of that
             // during insertion. Here we manually set the userDataId to
             // complete the UserData object.
             $userData->setUserDataId($userDataId);
             // We should also get the user's associated skills
             $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userDataId);
             $skill_areas = array();
             foreach ($skillAssocs as $skillAssoc) {
                 $skillId = $skillAssoc->getSkillId();
                 // skillIds start from 1, however array-indexing
                 // starts at 0; so we use an offset of -1 when retrieving
                 // values from $SKILL_AREAS
                 $skill_name = Skill::$SKILL_AREAS[$skillId - 1];
                 array_push($skill_areas, $skill_name);
             }
             $userData->setSkillAreas($skill_areas);
             array_push($usersData, $userData);
         }
     }
     return $usersData;
 }
 public function testUpdateUserData()
 {
     $myDB = DBMaker::create('botspacetest');
     Database::clearDB();
     $db = Database::getDB('botspacetest', 'C:\\xampp\\myConfig.ini');
     $testUserDataId = 1;
     $userDataArray = UserDataDB::getUserDataBy('userDataId', $testUserDataId);
     $userData = $userDataArray[0];
     $params = $userData->getParameters();
     $this->assertEquals($userData->getUserName(), 'jabituya', 'Before the update it should have username jabituya');
     $testUserDataRowsArray = UserDataDB::getUserDataRowSetsBy('userDataId', $testUserDataId);
     $testUserDataRow = $testUserDataRowsArray[0];
     $params['user_name'] = 'jabituya2000';
     $newUserData = new UserData($params);
     $newUserData->setUserDataId($testUserDataId);
     $userData = UserDataDB::updateUserData($newUserData);
     $this->assertEquals($userData->getUserName(), 'jabituya2000', 'After the update it should have username jabituya2000');
     $this->assertTrue(empty($userData->getErrors()), 'The updated user data should have no errors');
 }