1
0

CuratedOnboardingNotifyAdminNewApplicationPipeline.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Jobs\CuratedOnboarding;
  3. use Illuminate\Bus\Queueable;
  4. use Illuminate\Contracts\Queue\ShouldQueue;
  5. use Illuminate\Foundation\Bus\Dispatchable;
  6. use Illuminate\Queue\InteractsWithQueue;
  7. use Illuminate\Queue\SerializesModels;
  8. use App\Models\CuratedRegister;
  9. use App\User;
  10. use Illuminate\Support\Facades\Mail;
  11. use Illuminate\Support\Facades\Storage;
  12. use App\Mail\CuratedRegisterNotifyAdmin;
  13. class CuratedOnboardingNotifyAdminNewApplicationPipeline implements ShouldQueue
  14. {
  15. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  16. public $cr;
  17. /**
  18. * Create a new job instance.
  19. */
  20. public function __construct(CuratedRegister $cr)
  21. {
  22. $this->cr = $cr;
  23. }
  24. /**
  25. * Execute the job.
  26. */
  27. public function handle(): void
  28. {
  29. if(!config('instance.curated_registration.notify.admin.on_verify_email.enabled')) {
  30. return;
  31. }
  32. config('instance.curated_registration.notify.admin.on_verify_email.bundle') ?
  33. $this->handleBundled() :
  34. $this->handleUnbundled();
  35. }
  36. protected function handleBundled()
  37. {
  38. $cr = $this->cr;
  39. Storage::append('conanap.json', json_encode([
  40. 'id' => $cr->id,
  41. 'email' => $cr->email,
  42. 'created_at' => $cr->created_at,
  43. 'updated_at' => $cr->updated_at,
  44. ]));
  45. }
  46. protected function handleUnbundled()
  47. {
  48. $cr = $this->cr;
  49. if($aid = config_cache('instance.admin.pid')) {
  50. $admin = User::whereProfileId($aid)->first();
  51. if($admin && $admin->email) {
  52. Mail::to($admin->email)->send(new CuratedRegisterNotifyAdmin($cr));
  53. }
  54. }
  55. }
  56. }