DomainRecord.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CatchAdmin [Just Like ~ ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
  8. // +----------------------------------------------------------------------
  9. // | Author: JaguarJack [ njphper@gmail.com ]
  10. // +----------------------------------------------------------------------
  11. namespace catchAdmin\domain\support\driver\aliyun;
  12. use catchAdmin\domain\support\contract\DomainRecordInterface;
  13. use catchAdmin\domain\support\driver\ApiTrait;
  14. use catchAdmin\domain\support\Transformer;
  15. class DomainRecord implements DomainRecordInterface
  16. {
  17. use ApiTrait;
  18. /**
  19. * 列表
  20. *
  21. * @param array $params
  22. * @return mixed
  23. */
  24. public function getList(array $params)
  25. {
  26. $data = [
  27. 'Action' => 'DescribeDomainRecords',
  28. 'DomainName' => $params['name'],
  29. 'PageNumber' => $params['page'] ?? 1,
  30. 'PageSize' => $params['limit'] ?? 20,
  31. ];
  32. if ($params['rr']) {
  33. $data['RRKeyWord'] = $params['rr'];
  34. }
  35. if ($params['type']) {
  36. $data['TypeKeyWord'] = $params['type'];
  37. }
  38. if ($params['value']) {
  39. $data['ValueKeyWord'] = $params['value'];
  40. }
  41. if ($params['line']) {
  42. $data['Line'] = $params['line'];
  43. }
  44. if ($params['status']) {
  45. $data['Status'] = $params['status'];
  46. }
  47. // TODO: Implement getList() method.
  48. return Transformer::aliyunDomainRecordPaginate($this->get($data));
  49. }
  50. /**
  51. * 新增解析
  52. *
  53. * @param array $params
  54. * @return array
  55. *
  56. */
  57. public function store(array $params)
  58. {
  59. // TODO: Implement add() method.
  60. return $this->get([
  61. 'Action' => 'AddDomainRecord',
  62. 'DomainName' => $params['name'],
  63. 'RR' => $params['rr'],
  64. 'Type' => $params['type'],
  65. 'Value' => $params['value'],
  66. 'Line' => $params['line'],
  67. 'TTL' => $params['ttl'],
  68. ]);
  69. }
  70. /**
  71. * 删除解析
  72. *
  73. * @param $recordId
  74. * @return array
  75. */
  76. public function delete($recordId)
  77. {
  78. // TODO: Implement delete() method.
  79. return $this->get([
  80. 'Action' => 'DeleteDomainRecord',
  81. 'RecordId' => $recordId
  82. ]);
  83. }
  84. /**
  85. * 获取解析记录
  86. *
  87. * @param array $params
  88. * @return array
  89. */
  90. public function read(array $params)
  91. {
  92. // TODO: Implement info() method.
  93. return $this->get([
  94. 'Action' => 'DescribeDomainRecord',
  95. 'RecordId' => $params['record_id'],
  96. ]);
  97. }
  98. /**
  99. * 更新解析
  100. *
  101. * @param array $params
  102. * @param $recordId
  103. * @return array
  104. */
  105. public function update($recordId, array $params)
  106. {
  107. // TODO: Implement update() method.
  108. return $this->get([
  109. 'Action' => 'UpdateDomainRecord',
  110. 'RecordId' => $recordId,
  111. 'RR' => $params['rr'],
  112. 'Type' => $params['type'],
  113. 'Value' => $params['value'],
  114. 'Line' => $params['line'],
  115. 'TTL' => $params['ttl'],
  116. ]);
  117. }
  118. /**
  119. * 设置状态
  120. *
  121. * @param $recordId
  122. * @param $status
  123. * @return array
  124. */
  125. public function enable($recordId, $status)
  126. {
  127. return $this->get([
  128. 'Action' => 'SetDomainRecordStatus',
  129. 'RecordId' => $recordId,
  130. 'Status' => ucfirst(strtolower($status))
  131. ]);
  132. }
  133. }