You are here

function pwa_webpush_install in Progressive Web App 7.2

Implements hook_install().

File

modules/pwa_webpush/pwa_webpush.install, line 179

Code

function pwa_webpush_install() {
  user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, [
    'access pwa webpush',
  ]);
  user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, [
    'access pwa webpush',
  ]);

  // Set default settings.
  $vapid_settings = [
    'pwa_webpush_vapid_subject' => 'mailto:' . variable_get('site_mail', ''),
  ];

  // Include composer dependencies here to make it available everywhere.
  if (!class_exists('\\Minishlink\\WebPush\\WebPush')) {
    $folders = [
      // The vendor repository will be at the PWA module root.
      __DIR__ . '/../..',
      DRUPAL_ROOT,
      DRUPAL_ROOT . '/..',
    ];
    foreach ($folders as $folder) {
      if (file_exists($folder . '/vendor/autoload.php')) {
        require $folder . '/vendor/autoload.php';
        break;
      }
    }
  }
  if (class_exists('\\Minishlink\\WebPush\\VAPID')) {
    $keys = \Minishlink\WebPush\VAPID::createVapidKeys();
    $vapid_settings['pwa_webpush_vapid_public'] = $keys['publicKey'];
    $vapid_settings['pwa_webpush_vapid_private'] = $keys['privateKey'];
  }
  foreach ($vapid_settings as $key => $default) {

    // Only set variables if they do not exist.
    if (empty(variable_get($key, ''))) {
      variable_set($key, $default);
    }
  }
}