AvatarObserver.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Observers;
  3. use App\Avatar;
  4. use App\Services\AccountService;
  5. use Illuminate\Support\Facades\Storage;
  6. use Illuminate\Support\Str;
  7. class AvatarObserver
  8. {
  9. /**
  10. * Handle events after all transactions are committed.
  11. *
  12. * @var bool
  13. */
  14. public $afterCommit = true;
  15. /**
  16. * Handle the avatar "created" event.
  17. *
  18. * @return void
  19. */
  20. public function created(Avatar $avatar)
  21. {
  22. //
  23. }
  24. /**
  25. * Handle the avatar "updated" event.
  26. *
  27. * @return void
  28. */
  29. public function updated(Avatar $avatar)
  30. {
  31. AccountService::del($avatar->profile_id);
  32. }
  33. /**
  34. * Handle the avatar "deleted" event.
  35. *
  36. * @return void
  37. */
  38. public function deleted(Avatar $avatar)
  39. {
  40. //
  41. }
  42. /**
  43. * Handle the avatar "deleting" event.
  44. *
  45. * @return void
  46. */
  47. public function deleting(Avatar $avatar)
  48. {
  49. $path = storage_path('app/'.$avatar->media_path);
  50. if (is_file($path) &&
  51. $avatar->media_path != 'public/avatars/default.png' &&
  52. $avatar->media_path != 'public/avatars/default.jpg'
  53. ) {
  54. @unlink($path);
  55. }
  56. if ((bool) config_cache('pixelfed.cloud_storage')) {
  57. $disk = Storage::disk(config('filesystems.cloud'));
  58. $base = Str::startsWith($avatar->media_path, 'cache/avatars/');
  59. if ($base && $disk->exists($avatar->media_path)) {
  60. $disk->delete($avatar->media_path);
  61. }
  62. }
  63. AccountService::del($avatar->profile_id);
  64. }
  65. /**
  66. * Handle the avatar "restored" event.
  67. *
  68. * @return void
  69. */
  70. public function restored(Avatar $avatar)
  71. {
  72. //
  73. }
  74. /**
  75. * Handle the avatar "force deleted" event.
  76. *
  77. * @return void
  78. */
  79. public function forceDeleted(Avatar $avatar)
  80. {
  81. //
  82. }
  83. }