AvatarObserver.php 1.9 KB

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