/** * Updates the widget * * @param int $widgetId * @param array $postData * @param array $currentData * @return array */ public function update($widgetId, $postData, $currentData) { $dataSource = new DataSource($postData['sourceFile']); $sourceId = $dataSource->getId(); $dataToSave = array('tableTypeId' => $postData['tableTypeId'], 'sourceFile' => $postData['sourceFile'], 'sourceId' => $sourceId); $error = $dataSource->validate(); if (!empty($error)) { $dataToSave['error'] = $error; return $dataToSave; } if (isset($currentData['sourceId']) && $currentData['sourceId'] != $sourceId) { TableRepository::removeTableOf($currentData['sourceId']); } TableRepository::import($dataSource); return $dataToSave; }