quickbooks_api-8.x-1.0-beta4/quickbooks_api.install
quickbooks_api.install
<?php
/**
* @file
* Handles installation and update functions.
*/
use Drupal\quickbooks_api\QuickbooksService;
/**
* Move quickbooks tokens from config to State API.
*/
function quickbooks_api_uninstall() {
/** @var \Drupal\Core\Config\Config $config */
$config = \Drupal::service('config.factory')->getEditable(QuickbooksService::CONFIG_KEY);
$config->delete();
$states = [
QuickbooksService::STATE_ACCESS_TOKEN,
QuickbooksService::STATE_ACCESS_TOKEN_EXPIRY,
QuickbooksService::STATE_REFRESH_TOKEN,
QuickbooksService::STATE_REFRESH_EXPIRY,
QuickbooksService::STATE_OAUTH_SECURITY,
];
\Drupal::state()->deleteMultiple($states);
}
/**
* Move token data to state API.
*/
function quickbooks_api_update_8101() {
// Get config values, move them to the State API, delete the config values.
$config = \Drupal::service('config.factory')->getEditable('quickbooks_api.adminsettings');
\Drupal::state()->set('quickbooks_api.access_token', $config->get('access_token'));
\Drupal::state()->set('quickbooks_api.refresh_token', $config->get('refresh_token'));
\Drupal::state()->set('quickbooks_api.access_token_expiry', $config->get('access_token_expiry'));
\Drupal::state()->set('quickbooks_api.refresh_token_expiry', $config->get('refresh_token_expiry'));
// Delete from config.
$config->clear('access_token');
$config->clear('refresh_token');
$config->clear('access_token_expiry');
$config->clear('refresh_token_expiry');
$config->save();
}
/**
* Upgrade to 2.0.x configuration schema.
*/
function quickbooks_api_update_9000(&$sandbox) {
/** @var \Drupal\Core\Config\Config $old_config */
$old_config = \Drupal::service('config.factory')->getEditable('quickbooks_api.adminsettings');
/** @var \Drupal\Core\Config\Config $new_config */
$new_config = \Drupal::service('config.factory')->getEditable(QuickbooksService::CONFIG_KEY);
$new_config->set('company_id', $old_config->get('company_id'));
$new_config->set('client_id', $old_config->get('client_id'));
$new_config->set('client_secret', $old_config->get('client_secret'));
$new_config->set('environment', $old_config->get('production') == '3' ? 'Development' : 'Production');
$new_config->save();
// Delete the old configuration.
$old_config->delete();
}
