CheckOneDomain.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\App\Libs\Api\OpenSRS\Method;
  3. /**
  4. * Description of CheckOneDomain
  5. *
  6. * @author Rafał Ossowski <rafal.os@modulesgarden.com>
  7. */
  8. class CheckOneDomain extends AbstractMethod
  9. {
  10. protected $domain;
  11. protected $tld;
  12. public function execute($params)
  13. {
  14. $this->domain = str_replace(' ', '', $params['sld']);
  15. $this->tld = $params['tld'];
  16. return $this->checkOneDomain();
  17. }
  18. public function checkOneDomain()
  19. {
  20. $tld = "." . $this->idnaConvert->encode(strtolower($this->tld));
  21. $response = $this->request->process(
  22. 'json', json_encode([
  23. 'func' => 'fastDomainLookup',
  24. 'data' => [
  25. 'domain' => $this->idnaConvert->encode(strtolower($this->domain)),
  26. 'selected' => $tld,
  27. 'alldomains' => $tld,
  28. ]
  29. ])
  30. )->resultFormatted;
  31. return $this->formatResponse($response);
  32. }
  33. protected function formatResponse($response)
  34. {
  35. $returnData = [];
  36. foreach (json_decode($response) as $record)
  37. {
  38. $returnData[] = [
  39. 'sld' => $this->domain,
  40. 'tld' => $this->tld,
  41. 'status' => $this->choseResult($record->result)
  42. ];
  43. }
  44. return $returnData;
  45. }
  46. protected function choseResult($return)
  47. {
  48. switch ($return)
  49. {
  50. case 'Available':
  51. return self::RESPONSE_RESULT_FREE;
  52. case 'Taken':
  53. return self::RESPONSE_RESULT_TAKEN;
  54. default:
  55. return self::RESPONSE_RESULT_ERROR;
  56. }
  57. }
  58. }