25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

175 satır
5.7 KiB

  1. <?php
  2. namespace JPush;
  3. use InvalidArgumentException;
  4. class SchedulePayload {
  5. const SCHEDULES_URL = 'https://api.jpush.cn/v3/schedules';
  6. private $client;
  7. /**
  8. * SchedulePayload constructor.
  9. * @param $client JPush
  10. */
  11. public function __construct($client) {
  12. $this->client = $client;
  13. }
  14. public function createSingleSchedule($name, $push_payload, $trigger) {
  15. if (!is_string($name)) {
  16. throw new InvalidArgumentException('Invalid schedule name');
  17. }
  18. if (!is_array($push_payload)) {
  19. throw new InvalidArgumentException('Invalid schedule push payload');
  20. }
  21. if (!is_array($trigger)) {
  22. throw new InvalidArgumentException('Invalid schedule trigger');
  23. }
  24. $payload = array();
  25. $payload['name'] = $name;
  26. $payload['enabled'] = true;
  27. $payload['trigger'] = array("single"=>$trigger);
  28. $payload['push'] = $push_payload;
  29. $url = SchedulePayload::SCHEDULES_URL;
  30. return Http::post($this->client, $url, json_encode($payload));
  31. }
  32. public function createPeriodicalSchedule($name, $push_payload, $trigger) {
  33. if (!is_string($name)) {
  34. throw new InvalidArgumentException('Invalid schedule name');
  35. }
  36. if (!is_array($push_payload)) {
  37. throw new InvalidArgumentException('Invalid schedule push payload');
  38. }
  39. if (!is_array($trigger)) {
  40. throw new InvalidArgumentException('Invalid schedule trigger');
  41. }
  42. $payload = array();
  43. $payload['name'] = $name;
  44. $payload['enabled'] = true;
  45. $payload['trigger'] = array("periodical"=>$trigger);
  46. $payload['push'] = $push_payload;
  47. $url = SchedulePayload::SCHEDULES_URL;
  48. return Http::post($this->client, $url, json_encode($payload));
  49. }
  50. public function updateSingleSchedule($schedule_id, $name=null, $enabled=null, $push_payload=null, $trigger=null) {
  51. if (!is_string($schedule_id)) {
  52. throw new InvalidArgumentException('Invalid schedule id');
  53. }
  54. $payload = array();
  55. if (!is_null($name)) {
  56. if (!is_string($name)) {
  57. throw new InvalidArgumentException('Invalid schedule name');
  58. } else {
  59. $payload['name'] = $name;
  60. }
  61. }
  62. if (!is_null($enabled)) {
  63. if (!is_bool($enabled)) {
  64. throw new InvalidArgumentException('Invalid schedule enable');
  65. } else {
  66. $payload['enabled'] = $enabled;
  67. }
  68. }
  69. if (!is_null($push_payload)) {
  70. if (!is_array($push_payload)) {
  71. throw new InvalidArgumentException('Invalid schedule push payload');
  72. } else {
  73. $payload['push'] = $push_payload;
  74. }
  75. }
  76. if (!is_null($trigger)) {
  77. if (!is_array($trigger)) {
  78. throw new InvalidArgumentException('Invalid schedule trigger');
  79. } else {
  80. $payload['trigger'] = array("single"=>$trigger);
  81. }
  82. }
  83. if (count($payload) <= 0) {
  84. throw new InvalidArgumentException('Invalid schedule, name, enabled, trigger, push can not all be null');
  85. }
  86. $url = SchedulePayload::SCHEDULES_URL . "/" . $schedule_id;
  87. return Http::put($this->client, $url, json_encode($payload));
  88. }
  89. public function updatePeriodicalSchedule($schedule_id, $name=null, $enabled=null, $push_payload=null, $trigger=null) {
  90. if (!is_string($schedule_id)) {
  91. throw new InvalidArgumentException('Invalid schedule id');
  92. }
  93. $payload = array();
  94. if (!is_null($name)) {
  95. if (!is_string($name)) {
  96. throw new InvalidArgumentException('Invalid schedule name');
  97. } else {
  98. $payload['name'] = $name;
  99. }
  100. }
  101. if (!is_null($enabled)) {
  102. if (!is_bool($enabled)) {
  103. throw new InvalidArgumentException('Invalid schedule enable');
  104. } else {
  105. $payload['enabled'] = $enabled;
  106. }
  107. }
  108. if (!is_null($push_payload)) {
  109. if (!is_array($push_payload)) {
  110. throw new InvalidArgumentException('Invalid schedule push payload');
  111. } else {
  112. $payload['push'] = $push_payload;
  113. }
  114. }
  115. if (!is_null($trigger)) {
  116. if (!is_array($trigger)) {
  117. throw new InvalidArgumentException('Invalid schedule trigger');
  118. } else {
  119. $payload['trigger'] = array("periodical"=>$trigger);
  120. }
  121. }
  122. if (count($payload) <= 0) {
  123. throw new InvalidArgumentException('Invalid schedule, name, enabled, trigger, push can not all be null');
  124. }
  125. $url = SchedulePayload::SCHEDULES_URL . "/" . $schedule_id;
  126. return Http::put($this->client, $url, json_encode($payload));
  127. }
  128. public function getSchedules($page = 1) {
  129. if (!is_int($page)) {
  130. $page = 1;
  131. }
  132. $url = SchedulePayload::SCHEDULES_URL . "?page=" . $page;
  133. return Http::get($this->client, $url);
  134. }
  135. public function getSchedule($schedule_id) {
  136. if (!is_string($schedule_id)) {
  137. throw new InvalidArgumentException('Invalid schedule id');
  138. }
  139. $url = SchedulePayload::SCHEDULES_URL . "/" . $schedule_id;
  140. return Http::get($this->client, $url);
  141. }
  142. public function deleteSchedule($schedule_id) {
  143. if (!is_string($schedule_id)) {
  144. throw new InvalidArgumentException('Invalid schedule id');
  145. }
  146. $url = SchedulePayload::SCHEDULES_URL . "/" . $schedule_id;
  147. return Http::delete($this->client, $url);
  148. }
  149. }