public static function getDatasetsArray($rows) { $datasets = array(); if (!empty($rows)) { // Convert the array of arrays into an array of Datasets // and set the id and date_created fields foreach ($rows as $datasetRow) { $dataset = new Dataset($datasetRow); $datasetId = $datasetRow['dataset_id']; $dataset->setDatasetId($datasetId); $datasetDateCreated = $datasetRow['date_created']; $dataset->setDateCreated($datasetDateCreated); // TODO: We should also get the dataset's associated sensors // Coordinate this in the controller array_push($datasets, $dataset); } } return $datasets; }
private function updateDataset() { $dataset = $_SESSION['dataset']; if (empty($dataset)) { HomeView::show(); header('Location: /' . $_SESSION['base']); } elseif ($_SERVER['REQUEST_METHOD'] == 'GET') { DatasetView::showUpdate(); } else { $params = $dataset->getParameters(); $params['dataset_name'] = array_key_exists('dataset_name', $_POST) ? $_POST['dataset_name'] : ''; $params['description'] = array_key_exists('description', $_POST) ? $_POST['description'] : ''; $updatedDataset = new Dataset($params); $updatedDataset->setDatasetId($dataset->getDatasetId()); $returnedDataset = DatasetsDB::updateDataset($updatedDataset); if ($returnedDataset->getErrorCount() == 0) { // Show the Dataset view which should display the updated params DatasetView::show(); header('Location: /' . $_SESSION['base'] . '/dataset/show/' . $dataset->getDatasetId()); } else { // Carry over the sensors, if any $updatedDataset->setSensors($dataset->getSensors()); $_SESSION['dataset'] = $updatedDataset; DatasetView::showUpdate(); } } }
public function testUpdateDatasetDescription() { $myDb = DBMaker::create('sensordatarepotest'); Database::clearDB(); $db = Database::getDB('sensordatarepotest', 'C:\\xampp\\myConfig.ini'); $testDatasetId = 1; $datasets = DatasetsDB::getDatasetsBy('dataset_id', $testDatasetId); $dataset = $datasets[0]; $this->assertTrue(empty($dataset->getDescription()), 'Before the update, it should have an empty description'); $params = $dataset->getParameters(); $params['description'] = 'Updated description'; $newDataset = new Dataset($params); $newDataset->setDatasetId($testDatasetId); $returnedDataset = DatasetsDB::updateDataset($newDataset); $this->assertEquals($returnedDataset->getDescription(), $params['description'], 'After the update it should have the name ' . $params['description']); }