diff --git a/app/Jobs/FollowPipeline/FollowPipeline.php b/app/Jobs/FollowPipeline/FollowPipeline.php index 67733919f..6d30f0fc2 100644 --- a/app/Jobs/FollowPipeline/FollowPipeline.php +++ b/app/Jobs/FollowPipeline/FollowPipeline.php @@ -3,7 +3,13 @@ namespace App\Jobs\FollowPipeline; use App\Follower; +use App\Jobs\PushNotificationPipeline\FollowPushNotifyPipeline; use App\Notification; +use App\Services\AccountService; +use App\Services\FollowerService; +use App\Services\NotificationAppGatewayService; +use App\Services\PushNotificationService; +use App\User; use Cache; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; @@ -11,9 +17,6 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Log; -use Illuminate\Support\Facades\Redis; -use App\Services\AccountService; -use App\Services\FollowerService; class FollowPipeline implements ShouldQueue { @@ -49,16 +52,16 @@ class FollowPipeline implements ShouldQueue $actor = $follower->actor; $target = $follower->target; - if(!$actor || !$target) { + if (! $actor || ! $target) { return; } - if($target->domain || !$target->private_key) { + if ($target->domain || ! $target->private_key) { return; } - Cache::forget('profile:following:' . $actor->id); - Cache::forget('profile:following:' . $target->id); + Cache::forget('profile:following:'.$actor->id); + Cache::forget('profile:following:'.$target->id); FollowerService::add($actor->id, $target->id); @@ -72,9 +75,9 @@ class FollowPipeline implements ShouldQueue $target->save(); AccountService::del($target->id); - if($target->user_id && $target->domain === null) { + if ($target->user_id && $target->domain === null) { try { - $notification = new Notification(); + $notification = new Notification; $notification->profile_id = $target->id; $notification->actor_id = $actor->id; $notification->action = 'follow'; @@ -84,6 +87,15 @@ class FollowPipeline implements ShouldQueue } catch (Exception $e) { Log::error($e); } + + if (NotificationAppGatewayService::enabled()) { + if (PushNotificationService::check('follow', $target->id)) { + $user = User::whereProfileId($target->id)->first(); + if ($user && $user->expo_token && $user->notify_enabled) { + FollowPushNotifyPipeline::dispatchSync($user->expo_token, $actor->username); + } + } + } } } }