FollowerObserver.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Observers;
  3. use App\Follower;
  4. use App\Services\FollowerService;
  5. use Cache;
  6. use App\Jobs\HomeFeedPipeline\FeedFollowPipeline;
  7. use App\Jobs\HomeFeedPipeline\FeedUnfollowPipeline;
  8. class FollowerObserver
  9. {
  10. /**
  11. * Handle the Follower "created" event.
  12. *
  13. * @param \App\Follower $follower
  14. * @return void
  15. */
  16. public function created(Follower $follower)
  17. {
  18. if(config('instance.timeline.home.cached')) {
  19. Cache::forget('pf:timelines:home:' . $follower->profile_id);
  20. }
  21. FollowerService::add($follower->profile_id, $follower->following_id);
  22. FeedFollowPipeline::dispatch($follower->profile_id, $follower->following_id)->onQueue('follow');
  23. }
  24. /**
  25. * Handle the Follower "deleted" event.
  26. *
  27. * @param \App\Follower $follower
  28. * @return void
  29. */
  30. public function deleted(Follower $follower)
  31. {
  32. FollowerService::remove($follower->profile_id, (string) $follower->following_id);
  33. }
  34. /**
  35. * Handle the Follower "force deleted" event.
  36. *
  37. * @param \App\Follower $follower
  38. * @return void
  39. */
  40. public function forceDeleted(Follower $follower)
  41. {
  42. FollowerService::remove($follower->profile_id, (string) $follower->following_id);
  43. }
  44. }