public static function run() { $action = array_key_exists('action', $_SESSION) ? $_SESSION['action'] : ""; $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : ""; switch ($action) { case "create": self::newSkillAssoc(); break; case "show": if ($arguments == 'all') { $_SESSION['skillAssocs'] = SkillAssocsDB::getSkillAssocsBy(); $_SESSION['headertitle'] = "botspace skill associations"; SkillAssocView::showAll(); } else { $skillAssocs = SkillAssocsDB::getSkillAssocsBy('skillAssocId', $arguments); $_SESSION['skillAssoc'] = $skillAssocs[0]; self::show(); } break; case "update": echo "Update"; self::updateSkillAssoc(); break; default: } }
public function testGetSkillAssocsByUserDataId() { $myDB = DBMaker::create('botspacetest'); Database::clearDB(); $db = Database::getDB('botspacetest', 'C:\\xampp\\myConfig.ini'); $testUserDataId = 3; $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $testUserDataId); foreach ($skillAssocs as $skillAssoc) { $this->assertEquals($skillAssoc->getUserDataId(), $testUserDataId, 'All returned SkillAssocs should have the specified userDataId'); } }
public static function show() { $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0; $userData = $_SESSION['userData']; if (!is_null($userData)) { $_SESSION['userData'] = $userData; $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId()); $_SESSION['skillAssocs'] = $skillAssocs; UserDataView::show(); } else { HomeView::show(); } }
public static function setProfileDataForUser($userId) { $retVal = false; if (empty($userId) || !is_numeric($userId)) { return $retVal; } $user = null; $userData = null; $skillAssocs = null; $userRobots = null; $users = UsersDB::getUsersBy('userId', $userId); if (count($users) > 0) { $user = $users[0]; if ($user->getErrorCount() != 0) { return $retVal; } $userDataArray = UserDataDB::getUserDataBy('userId', $userId); if (count($userDataArray) > 0) { $userData = $userDataArray[0]; } if ($userData->getErrorCount() != 0) { return $retVal; } $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId()); foreach ($skillAssocs as $skillAssoc) { if ($skillAssoc->getErrorCount() != 0) { return $retVal; } } $robotAssocs = RobotAssocsDB::getRobotAssocsBy('creatorId', $userData->getUserDataId()); $userRobots = array(); foreach ($robotAssocs as $robotAssoc) { $robotArray = RobotDataDB::getRobotDataBy('robotId', $robotAssoc->getRobotId()); if (count($robotArray) > 0) { array_push($userRobots, $robotArray[0]); } } $_SESSION['user'] = $user; $_SESSION['userData'] = $userData; $_SESSION['skillAssocs'] = $skillAssocs; $_SESSION['userRobots'] = $userRobots; $retVal = true; } return $retVal; }
public static function show() { $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0; $user = $_SESSION['user']; if (!is_null($user)) { $_SESSION['user'] = $user; $userDataArray = UserDataDB::getUserDataBy('userId', $user->getUserId()); $userData = $userDataArray[0]; $_SESSION['userData'] = $userData; $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId()); $_SESSION['skillAssocs'] = $skillAssocs; // The robot data section might look something like this: //$robotDataArray = RobotDataDB::getRobotDataBy('creator', $user->getUserId()); //$_SESSION['robotData'] = $robotDataArray; UserView::show(); } else { HomeView::show(); } }
public static function show() { $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0; $userData = $_SESSION['userData']; if (!is_null($userData)) { $_SESSION['userData'] = $userData; $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId()); $skills = array(); foreach ($skillAssocs as $skillAssoc) { $skillsArray = SkillsDB::getSkillsBy('skillId', $skillAssoc->getSkillId()); $skill = $skillsArray[0]; array_push($skills, $skill); } //$_SESSION['skillAssocs'] = $skillAssocs; $_SESSION['skills'] = $skills; UserDataView::show(); } else { HomeView::show(); } }
public static function updateUserData($userData) { try { $db = Database::getDB(); if (is_null($userData) || $userData->getErrorCount() > 0) { return $userData; } $checkUserData = UserDataDB::getUserDataBy('userDataId', $userData->getUserDataId()); if (empty($checkUserData)) { $userData->setError('userDataId', 'USER_DATA_DOES_NOT_EXIST'); return $userData; } if ($userData->getErrorCount() > 0) { return $userData; } $query = "UPDATE UserData SET userId = :userId, user_name = :user_name, \r\n\t\t\t\t\tskill_level = :skill_level, profile_pic = :profile_pic, \r\n\t\t\t\t\tstarted_hobby = :started_hobby, fav_color = :fav_color, url = :url,\r\n\t\t\t\t\tphone = :phone\r\n\t\t\t\t\tWHERE userDataId = :userDataId"; $statement = $db->prepare($query); $statement->bindValue(":userId", $userData->getUserId()); $statement->bindValue(":user_name", $userData->getUserName()); $statement->bindValue(":skill_level", $userData->getSkillLevel()); $statement->bindValue(":profile_pic", $userData->getProfilePic()); $statement->bindValue(":started_hobby", $userData->getStartedHobby()); $statement->bindValue(":fav_color", $userData->getFavColor()); $statement->bindValue(":url", $userData->getUrl()); $statement->bindValue(":phone", $userData->getPhone()); $statement->bindValue(":userDataId", $userData->getUserDataId()); $statement->execute(); $statement->closeCursor(); // Handle updates for the Skill Areas // 1 - Delete all existing skill associations for the user $deleteQuery = "DELETE from SkillAssocs WHERE userDataId = :userDataId"; $statement = $db->prepare($deleteQuery); $statement->bindValue(":userDataId", $userData->getUserDataId()); $statement->execute(); $statement->closeCursor(); // 2 - Add all of the new skill associations, if any $skillAreas = $userData->getSkillAreas(); $userDataId = $userData->getUserDataId(); foreach ($skillAreas as $skill_name) { // Translate the skill_name into a skillId first // skillIds start from 1, whereas array-indexing starts at 0; // so we add 1 to the index $skillId = array_search($skill_name, Skill::$SKILL_AREAS) + 1; $newSkillAssoc = new SkillAssocs($userDataId, $skillId); SkillAssocsDB::addSkillAssoc($newSkillAssoc); } } catch (Exception $e) { $userData->setError('userDataId', 'USER_DATA_COULD_NOT_BE_UPDATED'); } return $userData; }
public static function getSkillAssocsBy($type = null, $value = null) { $skillAssocsRows = SkillAssocsDB::getSkillAssocsRowsBy($type, $value); return SkillAssocsDB::getSkillAssocsArray($skillAssocsRows); }
public function testInsertDuplicateSkillAssoc() { $myDB = DBMaker::create('botspacetest'); Database::clearDB(); $db = Database::getDB('botspacetest', 'C:\\xampp\\myConfig.ini'); $beforeCount = count(SkillAssocsDB::getSkillAssocsBy()); $skillAssocCopy = SkillAssocsDB::getSkillAssocsRowsBy('skillAssocId', 4); $skillAssocCopy = $skillAssocCopy[0]; $s1 = new SkillAssocs($skillAssocCopy); $dupSkillAssoc = SkillAssocsDB::addSkillAssoc($s1); $afterCount = count(SkillAssocsDB::getSkillAssocsBy()); $this->assertTrue(!empty($dupSkillAssoc->getError('skillAssocId')) && strcmp(Messages::getError('SKILL_ASSOC_INVALID'), $dupSkillAssoc->getError('skillAssocId')) == 0, 'It should have a skillAssocId error if the skill association is a duplicate'); $this->assertEquals($afterCount, $beforeCount, 'There should be no additional skill associations entries after the insertion attempt'); }