UserFilterObserver.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace App\Observers;
  3. use App\UserFilter;
  4. use App\Services\UserFilterService;
  5. class UserFilterObserver
  6. {
  7. /**
  8. * Handle the user filter "created" event.
  9. *
  10. * @param \App\UserFilter $userFilter
  11. * @return void
  12. */
  13. public function created(UserFilter $userFilter)
  14. {
  15. $this->filterCreate($userFilter);
  16. }
  17. /**
  18. * Handle the user filter "updated" event.
  19. *
  20. * @param \App\UserFilter $userFilter
  21. * @return void
  22. */
  23. public function updated(UserFilter $userFilter)
  24. {
  25. $this->filterCreate($userFilter);
  26. }
  27. /**
  28. * Handle the user filter "deleted" event.
  29. *
  30. * @param \App\UserFilter $userFilter
  31. * @return void
  32. */
  33. public function deleted(UserFilter $userFilter)
  34. {
  35. $this->filterDelete($userFilter);
  36. }
  37. /**
  38. * Handle the user filter "restored" event.
  39. *
  40. * @param \App\UserFilter $userFilter
  41. * @return void
  42. */
  43. public function restored(UserFilter $userFilter)
  44. {
  45. $this->filterCreate($userFilter);
  46. }
  47. /**
  48. * Handle the user filter "force deleted" event.
  49. *
  50. * @param \App\UserFilter $userFilter
  51. * @return void
  52. */
  53. public function forceDeleted(UserFilter $userFilter)
  54. {
  55. $this->filterDelete($userFilter);
  56. }
  57. protected function filterCreate(UserFilter $userFilter)
  58. {
  59. if($userFilter->filterable_type !== 'App\Profile') {
  60. return;
  61. }
  62. switch ($userFilter->filter_type) {
  63. case 'mute':
  64. UserFilterService::mute($userFilter->user_id, $userFilter->filterable_id);
  65. break;
  66. case 'block':
  67. UserFilterService::block($userFilter->user_id, $userFilter->filterable_id);
  68. break;
  69. }
  70. }
  71. protected function filterDelete(UserFilter $userFilter)
  72. {
  73. if($userFilter->filterable_type !== 'App\Profile') {
  74. return;
  75. }
  76. switch ($userFilter->filter_type) {
  77. case 'mute':
  78. UserFilterService::unmute($userFilter->user_id, $userFilter->filterable_id);
  79. break;
  80. case 'block':
  81. UserFilterService::unblock($userFilter->user_id, $userFilter->filterable_id);
  82. break;
  83. }
  84. }
  85. }