. * */ namespace Friendica\Worker; use Friendica\Core\Logger; use Friendica\Database\DBA; use Minishlink\WebPush\WebPush; use Minishlink\WebPush\Subscription; Class PushSubscription { public static function execute(int $sid) { $subscription = DBA::selectFirst('subscription', [], ['id' => $sid]); $notification = [ 'subscription' => Subscription::create([ 'endpoint' => $subscription['endpoint'], 'publicKey' => $subscription['pubkey'], 'authToken' => $subscription['secret'], ]), 'payload' => null, ]; $webPush = new WebPush(); $report = $webPush->sendOneNotification( $notification['subscription'], $notification['payload'] ); $endpoint = $report->getRequest()->getUri()->__toString(); if ($report->isSuccess()) { Logger::info('Message sent successfully for subscription', ['endpoint' => $endpoint]); } else { Logger::info('Message failed to sent for subscription', ['endpoint' => $endpoint, 'reason' => $report->getReason()]); } } }