protected function prepareTestDatabase() { $environment_metamodel = data_controller_get_environment_metamodel(); // registering test data source and creating corresponding database $datasource = $environment_metamodel->findDataSource(DATASOURCE_NAME__TEST); if (!isset($datasource)) { $databaseNameSuffix = GD_NamingConvention::generateDataMartName() . '_ts'; $datasourceInfo = array('name' => DATASOURCE_NAME__TEST, 'publicName' => 'Test Suite', 'database' => $databaseNameSuffix); gd_datasource_create($datasourceInfo); // creating test tables $this->createDatasetStorage(TABLE_NAME__LEAF); $this->createDatasetStorage(TABLE_NAME__BRANCH); $this->createDatasetStorage(TABLE_NAME__MAIN); // populating the datasets $this->populateDatasets(); } }
/** * @param $datamartName * @param $export * @return services_error|stdClass * @throws Exception */ function gd_sync_resource_import ( $datamartName, $export ) { try { $content = json_decode($export); if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception('Invalid JSON'); } $datasourceName = gd_datasource_create(array( 'publicName' => $datamartName, 'description' => 'Imported Topic' )); gd_datasource_set_active($datasourceName); $importContext = new GD\Sync\Import\ImportContext(array('datasourceName'=>$datasourceName,'operation'=>'create')); $importStream = new GD\Sync\Import\ImportStream(); $importStream->set(null,$content); $importController = new \GD\Sync\Import\ImportController(); $importController->import($importStream,$importContext); $apiObject = new stdClass(); $apiObject->name = $datasourceName; $apiObject->messages = gd_get_session_messages(); return $apiObject; } catch ( Exception $e ) { return gd_admin_ui_service_exception_handler($e); } }
/** * @param $form * @param $form_state * @throws Exception */ function gd_sync_import_create_form_submit ( $form, &$form_state ) { try { $content = json_decode($form_state['values']['content']); if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception('Invalid JSON'); } $datasourceName = gd_datasource_create(array( 'publicName' => $form_state['values']['name'], 'description' => 'Imported Datamart.' )); gd_datasource_set_active($datasourceName); $importContext = new GD\Sync\Import\ImportContext(array('datasourceName'=>$datasourceName,'operation'=>'create')); $importStream = new GD\Sync\Import\ImportStream(); $importStream->set(null,$content); $importController = new \GD\Sync\Import\ImportController(); $importController->import($importStream,$importContext); drupal_set_message('Datamart Created Successfully'); } catch ( Exception $e ) { LogHelper::log_error($e); drupal_set_message($e->getMessage(),'error'); } }
} if ( !gd_datasource_name_is_unique(trim($_POST['publicName'])) ) { $errors[] = "Topic Name already exists. Please rename the topic"; } // process if ( empty($errors) ) { global $user; $new = array(); $new['publicName'] = $_POST['publicName']; $new['description'] = $_POST['description']; try { $datasourceName = gd_datasource_create($new); gd_datasource_set_active($datasourceName); drupal_set_message("Topic successfully created","status"); drupal_goto("account_datamart_statistics_charts"); } catch ( Exception $e ) { LogHelper::log_error($e); $errors[] = $e->getMessage(); } } } ?> <div id="content-inside"> <div style="float: left; width: 85%"><h2>Create Topic</h2></div>