MediaSyncLicensePipeline.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Jobs\MediaPipeline;
  3. use App\Media;
  4. use App\User;
  5. use Cache;
  6. use Illuminate\Bus\Queueable;
  7. use Illuminate\Contracts\Queue\ShouldQueue;
  8. use Illuminate\Foundation\Bus\Dispatchable;
  9. use Illuminate\Queue\InteractsWithQueue;
  10. use Illuminate\Queue\SerializesModels;
  11. use App\Services\StatusService;
  12. class MediaSyncLicensePipeline implements ShouldQueue
  13. {
  14. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  15. protected $userId;
  16. protected $licenseId;
  17. public function __construct($userId, $licenseId)
  18. {
  19. $this->userId = $userId;
  20. $this->licenseId = $licenseId;
  21. }
  22. public function handle()
  23. {
  24. $licenseId = $this->licenseId;
  25. if(!$licenseId || !$this->userId) {
  26. return 1;
  27. }
  28. Media::whereUserId($this->userId)
  29. ->chunk(100, function($medias) use($licenseId) {
  30. foreach($medias as $media) {
  31. $media->license = $licenseId;
  32. $media->save();
  33. Cache::forget('status:transformer:media:attachments:'. $media->status_id);
  34. StatusService::del($media->status_id);
  35. }
  36. });
  37. }
  38. }