public static function callService($requestData) { // --- Variable Declarations -------------------------------// /* Whether or not the command was found. */ $commandFound = True; /* @var $serviceResult Array Contains the command results. */ $serviceResult = NULL; /* @var $iCommand The command object to execute. */ $iCommand = NULL; /* @var $sessionCheckCommand The command to check session*/ $sessionCheckCommand; // --- Main Routine -----------------------------------------// // Make sure the serviceID element exists if so execute. if ($requestData != NULL && array_key_exists("ServiceID", $requestData) && $requestData["ServiceID"] != NULL) { // check session if needed. if ($requestData["ServiceID"] != "Login") { $sessionCheckCommand = new CheckSessionCommand($requestData); $serviceResult = $sessionCheckCommand->executeCommand(); // Invalid session data flag it. if ($serviceResult->getResultType() != "success") { return $serviceResult; } } // Parse for the right command to be displayed. switch ($requestData["ServiceID"]) { // --- Account Management commands --- // case "Login": $iCommand = new LoginCommand($requestData); break; case "Logout": $iCommand = new LogoutCommand($requestData); break; // --- Admin panel commands --- // // --- Admin panel commands --- // case "AddCourse": $iCommand = new AddCourseCommand($requestData); break; case "DeleteCourse": $iCommand = new DeleteCourseCommand($requestData); break; case "UpdateCourse": $iCommand = new UpdateCourseCommand($requestData); break; // --- Student panel commands --- // // --- Student panel commands --- // case "SearchCourse": $iCommand = new SearchCourseCommand($requestData); break; case "UpdateSchedule": $iCommand = new UpdateScheduleCommand($requestData); break; case "GetSchedule": $iCommand = new GetScheduleCommmand($requestData); break; case "GetSemesters": $iCommand = new GetSemestersCommand($requestData); break; case "GetFacRatings": $iCommand = new GetFacRatingCommand($requestData); break; default: // Service requested not found. $commandFound = false; } // Execute command. if ($commandFound) { $serviceResult = $iCommand->executeCommand(); } else { $serviceResult = new commandResult("invalidData"); $serviceResult->addValuePair("Description", "Service requested not found."); } } else { $serviceResult = new commandResult("invalidData"); $serviceResult->addValuePair("Description", "Improper request format."); } // give back the result. return $serviceResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("searchPhrase", "semesterID"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $courseList (Array) Used to grab sections data. */ $courseList; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; /* @var $searchPhrase (String) The phrase to do the search. */ $searchPhrase = NULL; /* @var $resultTable (array) The result table to return data.*/ $resultTable; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { try { // Get the search phrase. $searchPhrase = $this->requestContent["searchPhrase"]; // 1. Select the type of data were working with. if ($searchPhrase == "*") { // Select everything. $sqlQuery = 'SELECT courseCode FROM course WHERE 1'; $sqlParams = array(); } else { if (preg_match('~^[a-zA-Z]{3} [0-9]{3}$~', $searchPhrase)) { // XXX XXX: CIS 350 $sqlQuery = 'SELECT c.courseCode FROM course AS c JOIN department AS d ON d.depName = ? WHERE c.cID = ?'; $sqlParams = array(substr($searchPhrase, 0, 3), substr($searchPhrase, 4, 3)); } else { if (preg_match('~^[a-zA-Z]{3}$~', $searchPhrase)) { // XXX: CIS $sqlQuery = 'SELECT c.courseCode FROM course AS c JOIN department AS d ON d.depName = ? WHERE c.dNum = d.dID'; $sqlParams = array($searchPhrase); } else { if ($searchPhrase != "") { $sqlQuery = "SELECT courseCode FROM course WHERE title LIKE ? OR description LIKE ?"; $searchPhrase = "%" . $searchPhrase . "%"; $sqlParams = array($searchPhrase, $searchPhrase); } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "No classes found."); return $commandResult; } } } } // 2. Run the statement. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { // 3. get the results and make sure we have something to return. $courseList = $this->dbAccess->getResults(); if ($courseList != null) { $sqlQuery = "SELECT c.*, d.depName, s.sectionCode, s.sectionID, s.seats,s.seatsOpen,\n f.firstName,f.lastName, b.buildingName, l.classroom, t.meetDays, t.creditHours, t.startTime, t.endTime\n FROM course AS c\n JOIN department AS d\n ON c.dNum = d.dID\n JOIN section AS s\n ON s.courseCode = c.courseCode AND s.semesterCode = ?\n JOIN faculty AS f\n ON f.facultyID = s.facultyID\n JOIN location AS l\n ON l.locationID = s.locationID\n JOIN building AS b\n ON b.buildingID = l.buildingID\n JOIN timeblock AS t\n ON t.timeblockID = s.timeblockID\n WHERE c.courseCode = ?"; $courseResults = array(); // 4. Per result pull all the sections related to the course. foreach ($courseList as &$courseCode) { // Execute the search query. $sqlParams = array($this->requestContent["semesterID"], $courseCode["courseCode"]); if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { // 5. Check and see if we have sections. $sectionList = $this->dbAccess->getResults(); $sectionArray = array(); if ($sectionList != null) { // 6. Per section populate section data. foreach ($sectionList as &$resSec) { $section = array(); $section["sectionID"] = $resSec["sectionID"]; $section["sectionCode"] = $resSec["sectionCode"]; $section["profFirst"] = $resSec["firstName"]; $section["profLast"] = $resSec["lastName"]; $section["startTime"] = $resSec["startTime"]; $section["endTime"] = $resSec["endTime"]; $section["meetDays"] = $resSec["meetDays"]; $section["building"] = $resSec["buildingName"]; $section["room"] = $resSec["classroom"]; $section["seats"] = $resSec["seats"]; $section["seatsOpen"] = $resSec["seatsOpen"]; array_push($sectionArray, $section); } // Populate the course data. $course["department"] = $sectionList[0]["depName"]; $course["courseID"] = $sectionList[0]["cID"]; $course["title"] = $sectionList[0]["title"]; $course["Description"] = $sectionList[0]["description"]; $course["creditHours"] = $sectionList[0]["creditHours"]; $course["sections"] = $sectionArray; array_push($courseResults, $course); } // end if check for null semester result. } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } // end of for each for course. // Append the data back if we have something. if (count($courseResults) > 0) { $commandResult = new commandResult("success"); $commandResult->addValuePair("courseList", $courseResults); } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "No classes found."); } } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "No classes found."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for SearchCourses service."); } // Return the command result. return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("studentID", "sessionID"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // TODO: 3. Brief Description of what is going to happen. try { $sqlQuery = 'DELETE FROM session WHERE studentID = ? AND sessionKey = ?'; $sqlParams = array($this->requestContent["studentID"], $this->requestContent["sessionID"]); // Execute and build the login data result. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); if ($result > 0) { $commandResult = new commandResult("success"); } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Session already logged out or doesn't exist."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for Logout."); } // Return the command result. return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("studentID", "semesterID"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; /* @var $classList (array) List of classes for user. */ $classList = array(); /* @var $scheduleResult (array) Meta data for schedule. */ $scheduleResult = array(); /* @var $scheduleResult (string) The schedule ID. */ $scheduleID; /* @var $credits (int) The number of credits scheduled. */ $credits; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // Try to match a schedule up to a student and pull it down. try { // 1. Get schedule meta data if it exists so we can pull details. $sqlQuery = 'SELECT scheduleID, creditHours FROM studentschedule WHERE studentID = ? AND semesterID = ? LIMIT 1'; $sqlParams = array($this->requestContent["studentID"], $this->requestContent["semesterID"]); // 2. If data could be found pull class data. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); if ($result != null) { $sqlQuery = "SELECT s.semesterCode,s.sectionCode,s.seats,s.seatsOpen,s.sectionID,\n d.depName, f.firstName, f.lastName, b.buildingName, l.classroom, t.meetDays,\n t.creditHours, t.startTime, t.endTime, c.title, c.cID, c.courseCode, c.description\n FROM scheduleitem AS si\n \tJOIN section AS s\n \tON s.sectionCode = si.SectionCode\n JOIN course AS c\n \tON c.courseCode = s.courseCode\n \tJOIN department AS d\n \tON d.dID = c.dNum\n JOIN faculty AS f\n \tON f.facultyID = s.facultyID\n JOIN location AS l\n \tON l.locationID = s.locationID\n JOIN building AS b\n \tON b.buildingID = l.buildingID\n JOIN timeblock AS t\n \tON t.timeblockID = s.timeblockID\n WHERE si.scheduleID = ?"; // fill out meta data used for later. $scheduleID = $result[0]["scheduleID"]; $credits = $result[0]["creditHours"]; $sqlParams = array($scheduleID); // 3. get the classes and populate the data. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); if ($result != null) { foreach ($result as &$resClass) { $class = array(); $class["courseCode"] = $resClass["courseCode"]; $class["courseID"] = $resClass["cID"]; $class["courseTitle"] = $resClass["title"]; $class["departmentName"] = $resClass["depName"]; $class["courseDescription"] = $resClass["description"]; $class["semesterCode"] = $resClass["semesterCode"]; $class["sectionID"] = $resClass["sectionID"]; $class["sectionCode"] = $resClass["sectionCode"]; $class["profFirst"] = $resClass["firstName"]; $class["profLast"] = $resClass["lastName"]; $class["startTime"] = $resClass["startTime"]; $class["endTime"] = $resClass["endTime"]; $class["meetDays"] = $resClass["meetDays"]; $class["building"] = $resClass["buildingName"]; $class["room"] = $resClass["classroom"]; $class["seats"] = $resClass["seats"]; $class["seatsOpen"] = $resClass["seatsOpen"]; array_push($classList, $class); } // Add all meta data to the list. $scheduleResult["scheduleID"] = $scheduleID; $scheduleResult["creditHours"] = $credits; $scheduleResult["classes"] = $classList; // Return the result. $commandResult = new commandResult("success"); $commandResult->addValuePair("scheduleData", $scheduleResult); } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for GetSchedule."); } return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("DepartmentID", "CourseID", "Title", "Description"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // TODO: 3. Brief Description of what is going to happen. try { // TODO 4: Implement code. } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for AddCourse."); } }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("DepartmentID", "CourseID", "NewDepartmentID", "NewCourseID", "NewTitle", "NewDescription"); /* @var $commandResult (commandResult) The result model. */ $commandResult = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // TODO: 3. Brief Description of what is going to happen. try { // A. validate that the course doesn't exist already. $sqlQuery = "SELECT * FROM course WHERE cID = ? AND dNum = ?"; $sqlParams = array($this->requestContent["CourseID"], $this->requestContent["DepartmentID"]); $this->dbAccess->executeQuery($sqlQuery, $sqlParams); // B. If the course doesnt exist if ($this->dbAccess->getResults() != NULL) { $sqlQuery = "UPDATE course SET cID = ?, dNum = ?, title = ?, description = ? WHERE dNum = ? AND cID = ?"; $sqlParams = array($this->requestContent["NewCourseID"], $this->requestContent["NewDepartmentID"], $this->requestContent["NewTitle"], $this->requestContent["NewDescription"], $this->requestContent["DepartmentID"], $this->requestContent["CourseID"]); if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $commandResult = new commandResult("success"); } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Database error."); } } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Could not find class."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } // Return the result of the command. return $commandResult; } }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array(); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; /* @var $semester (array) The semester list from the query. */ $semester; /* @var $semesterItem (array) A row from the query result. */ $semesterItem; /* @var $semesterList (array) the result to return to client.*/ $semesterList = array(); // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // TODO: 3. Brief Description of what is going to happen. try { $sqlQuery = 'SELECT * FROM semester WHERE ?=?'; $sqlParams = array(1, 1); if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); if ($result != null) { foreach ($result as &$semester) { $semesterItem["semesterID"] = $semester["semesterID"]; $semesterItem["year"] = $semester["year"]; $semesterItem["season"] = $semester["season"]; array_push($semesterList, $semesterItem); } // Return the result. $commandResult = new commandResult("success"); $commandResult->addValuePair("semesters", $semesterList); } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "No semesters found."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for GetSemesters."); } // Return the command result. return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("email", "password"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; /* @var $uniqueID (string) The session key to use for login. */ $uniqueID = uniqid("classyStudent_"); /* @var $accountDataRes (array) The user data to return. */ $accountDataRes; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // Attempt to check the password and user name. try { $sqlQuery = 'SELECT s.studentID, s.password, s.salt, i.firstname, i.lastname, i.classStanding, i.creditHours FROM student AS s JOIN studentinfo AS i ON s.studentID = i.studentID WHERE email = ?'; $sqlParams = array($this->requestContent["email"]); // Execute the search for the account. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $accountDataRes = $this->dbAccess->getResults(); // check the password to see if it matches. if ($accountDataRes != null) { $checkPassword = crypt($this->requestContent["password"], '$2a$07' . $accountDataRes[0]["salt"]); // If it matches build insert query to create session. if (strcmp($checkPassword, $accountDataRes[0]["password"]) == 0) { $sqlQuery = 'INSERT INTO session (studentID, sessionKey, createTime, expireTime) VALUES (?, ?, NOW(),ADDTIME(NOW(), "00:30:00"))'; $sqlParams = array($accountDataRes[0]["studentID"], $uniqueID); // Execute and build the login data result. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); // Check and see if were already logged in. if ($result) { $commandResult = new commandResult("success"); $commandResult->addValuePair("studentID", $accountDataRes[0]["studentID"]); $commandResult->addValuePair("sessionID", $uniqueID); $commandResult->addValuePair("firstName", $accountDataRes[0]["firstname"]); $commandResult->addValuePair("lastName", $accountDataRes[0]["lastname"]); $commandResult->addValuePair("classStanding", $accountDataRes[0]["classStanding"]); $commandResult->addValuePair("creditHours", $accountDataRes[0]["creditHours"]); } else { // Account already logged in. $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "The account is already signed in somewhere."); } } else { // Issue with insert query. $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { // Invalid password. $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Invalid email or password."); } } else { // Account not found. $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Invalid email or password."); } } else { // issue with search query. $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for Login."); } // Return the command result. return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("facultyID", "courseID"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; /* @var $rating (array) The rating list from the query. */ $rating; /* @var $ratingItem (array) A row from the query result. */ $ratingItem; /* @var $ratingList (array) the result to return to client. */ $ratingList = array(); // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // Request for all the ratings for a particular faculty memeber. try { $sqlQuery = 'SELECT f.description, f.rating, f.time,s.firstName,s.lastName,s.classStanding FROM facultyratings AS f JOIN studentinfo AS s ON s.studentID = f.studentID WHERE f.facultyID = ? AND f.courseCode = ?'; $sqlParams = array($this->requestContent["facultyID"], $this->requestContent["courseID"]); if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); if ($result != null) { foreach ($result as &$rating) { $ratingItem["rating"] = $rating["rating"]; $ratingItem["description"] = $rating["description"]; $ratingItem["revClassStanding"] = $rating["classStanding"]; $ratingItem["revFirstName"] = $rating["firstName"]; $ratingItem["revLastName"] = $rating["lastName"]; array_push($ratingList, $ratingItem); } // Return the ratings. $commandResult = new commandResult("success"); $commandResult->addValuePair("ratings", $ratingList); } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "No ratings found."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for GetFacRatings."); } // Return the command result. return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("studentID", "sessionID"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // TODO: 3. Brief Description of what is going to happen. try { $sqlQuery = 'SELECT * FROM session WHERE studentID = ? AND sessionKey = ? AND NOW() BETWEEN createTime AND expireTime'; $sqlParams = array($this->requestContent["studentID"], $this->requestContent["sessionID"]); // Execute and build the login data result. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); if (gettype($result) == "array" && count($result) == 1) { $commandResult = new commandResult("success"); } else { $commandResult = new commandResult("sessionInvalid"); $commandResult->addValuePair("Description", "Session data invalid, session may have ended."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Session information required for requested service."); } // Return the command result. return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("DepartmentID", "CourseID", "Title", "Description"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // 3. Brief Description of what is going to happen. try { // A. validate that the course doesn't exist already. $sqlQuery = "SELECT * FROM course WHERE cID = ? AND dNum = ?"; $sqlParams = array($this->requestContent["CourseID"], $this->requestContent["DepartmentID"]); $this->dbAccess->executeQuery($sqlQuery, $sqlParams); // B. If the course doesnt exist if ($this->dbAccess->getResults() == NULL) { $sqlQuery = "INSERT INTO course (`dNum`, `cID`, `title`, `description`) VALUES (?,?,?,?)"; $sqlParams = array($this->requestContent["DepartmentID"], $this->requestContent["CourseID"], $this->requestContent["Title"], $this->requestContent["Description"]); if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $commandResult = new commandResult("success"); } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Database error creating class."); } } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "class already exists."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for AddCourse."); } // Return the result of the command. return $commandResult; }
public function executeCommand() { // --- Variable Declarations -------------------------------// /* @var $commands (Array) Used to cross check the request. */ $commandParams = array("scheduleID", "sectionCodeID", "operation"); /* @var $commandResult (commandResult) The result model. */ $commandResult; /* @var $result (object) The output of PDO sql executes. */ $result = NULL; /* @var $sqlQuery (object) The query to execute on service. */ $sqlQuery = NULL; /* @var $updateSQL (array) The update query specifics. */ $updateSQL; // --- Main Routine ------------------------------------------// // Check if the request contains all necessary parameters. if ($this->isValidContent($this->requestContent, $commandParams)) { // Depending on the operation, either add or drop course from schedule. try { $sqlQuery = 'SELECT * FROM scheduleitem WHERE scheduleID = ? AND sectionCode = ?'; $sqlParams = array($this->requestContent["scheduleID"], $this->requestContent["sectionCodeID"]); if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); return $commandResult; } // Determine which activity were preforming. if ($this->requestContent["operation"] == "add") { if ($result == 0) { $sqlQuery = 'INSERT INTO scheduleitem (scheduleID,sectionCode) VALUES(?,?)'; $updateSQL = 's.seatsOpen = s.seatsOpen - 1, ss.creditHours = ss.creditHours + t.creditHours'; } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Scheduled course already exists."); return $commandResult; } } else { if ($this->requestContent["operation"] == "drop") { if ($result > 0) { $sqlQuery = 'DELETE FROM scheduleitem WHERE scheduleID = ? AND sectionCode = ?'; $sqlParams = array($this->requestContent["scheduleID"], $this->requestContent["sectionCodeID"]); $updateSQL = 's.seatsOpen = s.seatsOpen + 1, ss.creditHours = ss.creditHours - t.creditHours'; } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Scheduled course doesn't exist."); return $commandResult; } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid operation defined for command."); return $commandResult; } } // Update the seat and hours recorded for the schedule. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $result = $this->dbAccess->getResults(); if ($result > 0) { $sqlQuery = 'UPDATE studentschedule AS ss JOIN section AS s ON s.sectionCode = ? JOIN timeblock AS t ON t.timeblockID = s.timeblockID SET ' . $updateSQL . ' WHERE ss.scheduleID = ?'; $sqlParams = array($this->requestContent["sectionCodeID"], $this->requestContent["scheduleID"]); // Respond with a pass. if ($this->dbAccess->executeQuery($sqlQuery, $sqlParams)) { $commandResult = new commandResult("success"); } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("failed"); $commandResult->addValuePair("Description", "Desired Schedule or Section ID doesn't exist."); } } else { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } catch (Exception $e) { $commandResult = new commandResult("systemError"); $commandResult->addValuePair("Description", "Database failure."); } } else { $commandResult = new commandResult("invalidData"); $commandResult->addValuePair("Description", "Invalid input parameters for UpdateSchedule Service."); } return $commandResult; }