You are here

function _pwa_webpush_subscription_update in Progressive Web App 7.2

Parameters

\Minishlink\WebPush\MessageSentReport $report:

Throws

\InvalidMergeQueryException

1 call to _pwa_webpush_subscription_update()
pwa_webpush_send in modules/pwa_webpush/pwa_webpush.module
Sends a notification to a list of users.

File

modules/pwa_webpush/pwa_webpush.module, line 285

Code

function _pwa_webpush_subscription_update($report) {
  $key = [
    'endpoint_sha256' => hash('sha256', $report
      ->getEndpoint()),
  ];
  $fields = [];
  if ($report
    ->isSuccess()) {
    $fields['last_used'] = REQUEST_TIME;
  }
  if ($report
    ->isSubscriptionExpired()) {
    $fields['expired'] = REQUEST_TIME;
    watchdog('webpush', 'Notification subscription expired <pre>@sub</pre>', [
      '@sub' => json_encode($report
        ->jsonSerialize(), JSON_PRETTY_PRINT),
    ]);
  }
  if (!empty($fields)) {
    db_merge('pwa_webpush_subscription')
      ->key($key)
      ->fields($fields)
      ->execute();
  }
}