From de95342e9cb79152e35d768414a0a28c00d509e4 Mon Sep 17 00:00:00 2001
From: Aaron Bauman <aaron@messageagency.com>
Date: Fri, 22 Feb 2019 14:36:15 -0500
Subject: [PATCH] Remove deprecated method calls from salesforce.install update
 hooks

---
 salesforce.install | 42 +++++++++++++++++++++++++++++++-----------
 1 file changed, 31 insertions(+), 11 deletions(-)

diff --git a/salesforce.install b/salesforce.install
index 4bb876bf..823ffbe3 100644
--- a/salesforce.install
+++ b/salesforce.install
@@ -9,6 +9,7 @@ use Drupal\Core\Url;
 use Drupal\Component\Serialization\Json;
 use Drupal\salesforce\Entity\SalesforceAuthConfig;
 use Drupal\salesforce\SalesforceAuthProviderPluginManager;
+use Drupal\salesforce\Token\SalesforceToken;
 use OAuth\Common\Storage\Exception\TokenNotFoundException;
 
 /**
@@ -267,9 +268,6 @@ function salesforce_update_8004() {
   \Drupal::cache()->delete('salesforce:objects');
 }
 
-/**
- * Convert legacy oauth credentials to new auth plugin config.
- */
 /**
  * Convert legacy oauth credentials to new auth plugin config.
  */
@@ -290,7 +288,27 @@ function salesforce_update_8005() {
     $message = 'Existing "oauth_default" provider config detected. Refused to set legacy credentials.';
   }
   else {
-    SalesforceAuthProviderPluginManager::updateAuthConfig();
+    /** @var \Drupal\salesforce\Entity\SalesforceAuthConfig $oauth */
+    $oauth = NULL;
+    $config = \Drupal::configFactory()->getEditable('salesforce.settings');
+    // Config to new plugin config system.
+    $values = [
+      'id' => 'oauth_default',
+      'label' => 'OAuth Default',
+      'provider' => 'oauth',
+    ];
+    $oauth = SalesforceAuthConfig::create($values);
+    $settings = [
+      'consumer_key' => $config->get('consumer_key'),
+      'consumer_secret' => $config->get('consumer_secret'),
+      'login_url' => $config->get('login_url'),
+    ];
+    $oauth
+      ->set('provider_settings', $settings)
+      ->save();
+    $config
+      ->set('salesforce_auth_provider', 'oauth_default')
+      ->save();
     $message = 'Default OAuth provider created from legacy credentials.';
   }
   return $message;
@@ -300,19 +318,21 @@ function salesforce_update_8005() {
  * Convert legacy token to new auth plugin config.
  */
 function salesforce_update_8006() {
-  /** @var \Drupal\salesforce\Entity\SalesforceAuthConfig $oauth */
-  $oauth = SalesforceAuthProviderPluginManager::getAuthConfig();
+  $oauth = SalesforceAuthConfig::load('oauth_default');
   if (!$oauth) {
     return "Auth config missing. Refused to update legacy token.";
   }
   try {
-    if (\Drupal::service('salesforce.auth_token_storage')
-      ->retrieveAccessToken($oauth->id())) {
-      return "Token exists. Refused to update.";
-    }
+    \Drupal::service('salesforce.auth_token_storage')
+      ->retrieveAccessToken($oauth->id());
+    return "Token exists. Refused to update.";
   }
   catch (TokenNotFoundException $e) {
-    \Drupal::service('salesforce.auth_token_storage')->updateToken();
+    \Drupal::service('salesforce.auth_token_storage')
+      ->storeAccessToken('oauth_default',
+        new SalesforceToken(
+          \Drupal::state()->get('salesforce.access_token'),
+          \Drupal::state()->get('salesforce.refresh_token')));
     return "Updated legacy token to new plugin config.";
   }
 }
-- 
GitLab