diff --git a/app/Jobs/FollowPipeline/UnfollowPipeline.php b/app/Jobs/FollowPipeline/UnfollowPipeline.php index 99f763f5c..9417e535e 100644 --- a/app/Jobs/FollowPipeline/UnfollowPipeline.php +++ b/app/Jobs/FollowPipeline/UnfollowPipeline.php @@ -4,114 +4,115 @@ namespace App\Jobs\FollowPipeline; use App\Follower; use App\FollowRequest; +use App\Jobs\HomeFeedPipeline\FeedUnfollowPipeline; use App\Notification; use App\Profile; +use App\Services\AccountService; +use App\Services\FollowerService; +use App\Services\NotificationService; use Cache; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; 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; -use App\Services\NotificationService; -use App\Jobs\HomeFeedPipeline\FeedUnfollowPipeline; class UnfollowPipeline implements ShouldQueue { - use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; + use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; - protected $actor; - protected $target; + protected $actor; - /** - * Create a new job instance. - * - * @return void - */ - public function __construct($actor, $target) - { - $this->actor = $actor; - $this->target = $target; - } + protected $target; - /** - * Execute the job. - * - * @return void - */ - public function handle() - { - $actor = $this->actor; - $target = $this->target; + /** + * Create a new job instance. + * + * @return void + */ + public function __construct($actor, $target) + { + $this->actor = $actor; + $this->target = $target; + } - $actorProfile = Profile::find($actor); - if(!$actorProfile) { - return; - } - $targetProfile = Profile::find($target); - if(!$targetProfile) { - return; - } + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $actor = $this->actor; + $target = $this->target; - FeedUnfollowPipeline::dispatch($actor, $target)->onQueue('follow'); + $actorProfile = Profile::find($actor); + if (! $actorProfile) { + return; + } + $targetProfile = Profile::find($target); + if (! $targetProfile) { + return; + } - FollowerService::remove($actor, $target); + FeedUnfollowPipeline::dispatch($actor, $target)->onQueue('follow'); - $actorProfileSync = Cache::get(FollowerService::FOLLOWING_SYNC_KEY . $actor); - if(!$actorProfileSync) { - FollowServiceWarmCache::dispatch($actor)->onQueue('low'); - } else { - if($actorProfile->following_count) { - $actorProfile->decrement('following_count'); - } else { - $count = Follower::whereProfileId($actor)->count(); - $actorProfile->following_count = $count; - $actorProfile->save(); - } - Cache::put(FollowerService::FOLLOWING_SYNC_KEY . $actor, 1, 604800); - AccountService::del($actor); - } + FollowerService::remove($actor, $target); - $targetProfileSync = Cache::get(FollowerService::FOLLOWERS_SYNC_KEY . $target); - if(!$targetProfileSync) { - FollowServiceWarmCache::dispatch($target)->onQueue('low'); - } else { - if($targetProfile->followers_count) { - $targetProfile->decrement('followers_count'); - } else { - $count = Follower::whereFollowingId($target)->count(); - $targetProfile->followers_count = $count; - $targetProfile->save(); - } - Cache::put(FollowerService::FOLLOWERS_SYNC_KEY . $target, 1, 604800); - AccountService::del($target); - } + $actorProfileSync = Cache::get(FollowerService::FOLLOWING_SYNC_KEY.$actor); + if (! $actorProfileSync) { + FollowServiceWarmCache::dispatch($actor)->onQueue('low'); + } else { + if ($actorProfile->following_count) { + $actorProfile->decrement('following_count'); + } else { + $count = Follower::whereProfileId($actor)->count(); + $actorProfile->following_count = $count; + $actorProfile->save(); + } + Cache::put(FollowerService::FOLLOWING_SYNC_KEY.$actor, 1, 604800); + AccountService::del($actor); + } - if($targetProfile->domain == null) { - Notification::withTrashed() - ->whereProfileId($target) - ->whereAction('follow') - ->whereActorId($actor) - ->whereItemId($target) - ->whereItemType('App\Profile') - ->get() - ->each(function($n) { - NotificationService::del($n->profile_id, $n->id); - $n->forceDelete(); - }); - } + $targetProfileSync = Cache::get(FollowerService::FOLLOWERS_SYNC_KEY.$target); + if (! $targetProfileSync) { + FollowServiceWarmCache::dispatch($target)->onQueue('low'); + } else { + if ($targetProfile->followers_count) { + $targetProfile->decrement('followers_count'); + } else { + $count = Follower::whereFollowingId($target)->count(); + $targetProfile->followers_count = $count; + $targetProfile->save(); + } + Cache::put(FollowerService::FOLLOWERS_SYNC_KEY.$target, 1, 604800); + AccountService::del($target); + } - if($actorProfile->domain == null && config('instance.timeline.home.cached')) { - Cache::forget('pf:timelines:home:' . $actor); - } + if ($targetProfile->domain == null) { + Notification::withTrashed() + ->whereProfileId($target) + ->whereAction('follow') + ->whereActorId($actor) + ->whereItemId($target) + ->whereItemType('App\Profile') + ->get() + ->each(function ($n) { + NotificationService::del($n->profile_id, $n->id); + $n->forceDelete(); + }); + } - FollowRequest::whereFollowingId($target) - ->whereFollowerId($actor) - ->delete(); + if ($actorProfile->domain == null && config('instance.timeline.home.cached')) { + Cache::forget('pf:timelines:home:'.$actor); + } - return; - } + FollowRequest::whereFollowingId($target) + ->whereFollowerId($actor) + ->delete(); + + AccountService::del($target); + AccountService::del($actor); + + } }