DemonHelper.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\App\Helper;
  3. use ModulesGarden\ProxmoxAddon\App\Models\Doe\DemonTask;
  4. use ModulesGarden\ProxmoxAddon\Core\Models\Whmcs\DomainPricing;
  5. /**
  6. * Description of DemonHelper
  7. *
  8. * @author Rafał Ossowski <rafal.so@modulesgarden.com>
  9. */
  10. class DemonHelper
  11. {
  12. /**
  13. * @var DemonTask
  14. */
  15. protected $demonTask;
  16. /**
  17. * @var DomainPricing
  18. */
  19. protected $domainPricing;
  20. public function __construct(DemonTask $demonTask, DomainPricing $domainPricing)
  21. {
  22. $this->demonTask = $demonTask;
  23. $this->domainPricing = $domainPricing;
  24. }
  25. public function getReadyTask($sessionId)
  26. {
  27. $return = $this->demonTask
  28. ->select(
  29. $this->demonTask->getTable() . ".domain_status as status", $this->domainPricing->getTable() . ".id as id"
  30. )->WithDomainPrincing()
  31. ->WithSessionId($sessionId)
  32. ->StatusReady()
  33. ->whereNull($this->demonTask->getTable() . '.deleted_at')
  34. ->orderBy("{$this->demonTask->getTable()}.created_at", "ASC")
  35. ->get()
  36. ->toArray();
  37. $this->demonTask->WithSessionId($sessionId)
  38. ->StatusReady()
  39. ->whereNull($this->demonTask->getTable() . '.deleted_at')
  40. ->orderBy("{$this->demonTask->getTable()}.created_at", "ASC")
  41. ->update(['deleted_at' => time()]);
  42. return $return;
  43. }
  44. }