private function show() { $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0; // Identify the target user $users = UsersDB::getUsersBy('user_id', $arguments); $user = $users[0]; if (!is_null($user)) { // Prepare all data to be displayed in the target user's ProfileView // --all of their datasets // --all of the sensors for each dataset // TODO: add 'member since' $datasets = DatasetsDB::getDatasetsBy('user_id', $user->getUserId()); foreach ($datasets as $dataset) { $sensors = SensorsDB::getSensorsBy('dataset_id', $dataset->getDatasetId()); $dataset->setSensors($sensors); } $_SESSION['user'] = $user; $_SESSION['datasets'] = $datasets; ProfileView::show(); } else { $_SESSION['user'] = null; // TODO:: Consider showing a 'Specified user does not exist' page HomeView::show(); } }
private function show() { $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0; $dataset = $_SESSION['dataset']; if (!is_null($dataset)) { // Populate the Dataset with its sensors $sensors = SensorsDB::getSensorsBy('dataset_id', $dataset->getDatasetId()); $dataset->setSensors($sensors); // Update the session dataset $_SESSION['dataset'] = $dataset; DatasetView::show(); } else { HomeView::show(); header('Location: /' . $_SESSION['base']); } }
public static function run() { $action = array_key_exists('action', $_SESSION) ? $_SESSION['action'] : ""; $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : ""; if (is_numeric($arguments)) { $measurements = MeasurementsDB::getMeasurementsBy('sensor_id', $arguments); if (count($measurements) > 0) { $sensorId = $measurements[0]->getSensorId(); $sensorArray = SensorsDB::getSensorsBy('sensor_id', $sensorId); if (count($sensorArray) > 0) { $sensor = $sensorArray[0]; } else { HomeView::show(); } $datasetArray = DatasetsDB::getDatasetsBy('dataset_id', $sensor->getDatasetId()); if (count($datasetArray) > 0) { $dataset = $datasetArray[0]; } else { HomeView::show(); } $_SESSION['measurements'] = $measurements; $_SESSION['sensor'] = $sensor; $_SESSION['dataset'] = $dataset; } else { HomeView::show(); } switch ($action) { case "column": self::showColumnChart(); break; case "line": self::showLineChart(); break; default: HomeView::show(); } } else { HomeView::show(); } }
private function updateSensor() { $sensor = $_SESSION['sensor']; if (empty($sensor)) { HomeView::show(); header('Location: /' . $_SESSION['base']); } elseif ($_SERVER['REQUEST_METHOD'] == 'GET') { SensorView::showUpdate(); } else { $params = $sensor->getParameters(); $params['sensor_name'] = array_key_exists('sensor_name', $_POST) ? $_POST['sensor_name'] : ''; $params['description'] = array_key_exists('description', $_POST) ? $_POST['description'] : ''; $updatedSensor = new Sensor($params); $updatedSensor->setSensorId($sensor->getSensorId()); $returnedSensor = SensorsDB::updateSensor($updatedSensor); if ($returnedSensor->getErrorCount() == 0) { // Show the Sensor View which should display the updated params SensorView::show(); header('Location: /' . $_SESSION['base'] . '/sensor/show/' . $sensor->getSensorId()); } else { // Carry over the measurements, if any $updatedSensor->setMeasurements($sensor->getMeasurements()); $_SESSION['sensor'] = $updatedSensor; SensorView::showUpdate(); } } }
public function testUpdateSequenceType() { $myDb = DBMaker::create('sensordatarepotest'); Database::clearDB(); $db = Database::getDB('sensordatarepotest', 'C:\\xampp\\myConfig.ini'); $testSensorId = 2; $sensors = SensorsDB::getSensorsBy('sensor_id', $testSensorId); $sensor = $sensors[0]; $this->assertEquals($sensor->getSequenceType(), 'SEQUENTIAL', 'Before the update, it should have sequence type SEQUENTIAL'); $params = $sensor->getParameters(); $params['sequence_type'] = 'TIME-CODED'; $newSensor = new Sensor($params); $newSensor->setSensorId($testSensorId); $returnedSensor = SensorsDB::updateSensor($newSensor); $this->assertEquals($returnedSensor->getSequenceType(), $params['sequence_type'], 'After the update it should have sequence_type ' . $params['sequence_type']); $this->assertTrue(empty($returnedSensor->getErrors()), 'The updated sensor should be error-free'); }
public static function updateSensor($sensor) { try { $db = Database::getDB(); if (is_null($sensor) || $sensor->getErrorCount() > 0) { return $sensor; } $checkSensor = SensorsDB::getSensorsBy('sensor_id', $sensor->getSensorId()); if (empty($checkSensor)) { $sensor->setError('sensor_id', 'SENSOR_DOES_NOT_EXIST'); return $sensor; } if ($sensor->getErrorCount() > 0) { return $sensor; } $query = "UPDATE Sensors SET sensor_name = :sensor_name,\r\n\t\t\t\t\tsensor_type = :sensor_type, sensor_units = :sensor_units,\r\n\t\t\t\t\tsequence_type = :sequence_type, description = :description \r\n\t\t\t\t\tWHERE sensor_id = :sensor_id"; $statement = $db->prepare($query); $statement->bindValue(':sensor_name', $sensor->getSensorName()); $statement->bindValue(':sensor_type', $sensor->getSensorType()); $statement->bindValue(':sensor_units', $sensor->getSensorUnits()); $statement->bindValue(':sequence_type', $sensor->getSequenceType()); $statement->bindValue(':description', $sensor->getDescription()); $statement->bindValue(':sensor_id', $sensor->getSensorId()); $statement->execute(); $statement->closeCursor(); } catch (Exception $e) { $sensor->setError('sensor_id', 'SENSOR_COULD_NOT_BE_UPDATED'); } return $sensor; }