UnsuspendServers.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Listeners;
  3. use App\Events\UserUpdateCreditsEvent;
  4. use App\Models\Server;
  5. use App\Settings\UserSettings;
  6. use Exception;
  7. use Illuminate\Contracts\Queue\ShouldQueue;
  8. class UnsuspendServers implements ShouldQueue
  9. {
  10. private $min_credits_to_make_server;
  11. /**
  12. * Create the event listener.
  13. *
  14. * @return void
  15. */
  16. public function __construct(UserSettings $user_settings)
  17. {
  18. $this->min_credits_to_make_server = $user_settings->min_credits_to_make_server;
  19. }
  20. /**
  21. * Handle the event.
  22. *
  23. * @param UserUpdateCreditsEvent $event
  24. * @return void
  25. *
  26. * @throws Exception
  27. */
  28. public function handle(UserUpdateCreditsEvent $event)
  29. {
  30. if ($event->user->credits > $this->min_credits_to_make_server) {
  31. /** @var Server $server */
  32. foreach ($event->user->servers as $server) {
  33. if ($server->isSuspended()) {
  34. $server->unSuspend();
  35. }
  36. }
  37. }
  38. }
  39. }