Policy.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace Twilio\Jwt\TaskRouter;
  3. /**
  4. * Twilio API Policy constructor
  5. *
  6. * @author Justin Witz <justin.witz@twilio.com>
  7. * @license http://creativecommons.org/licenses/MIT/ MIT
  8. */
  9. class Policy {
  10. private $url;
  11. private $method;
  12. private $queryFilter;
  13. private $postFilter;
  14. private $allow;
  15. public function __construct($url, $method, $queryFilter = array(), $postFilter = array(), $allow = true) {
  16. $this->url = $url;
  17. $this->method = $method;
  18. $this->queryFilter = $queryFilter;
  19. $this->postFilter = $postFilter;
  20. $this->allow = $allow;
  21. }
  22. public function addQueryFilter($queryFilter) {
  23. array_push($this->queryFilter, $queryFilter);
  24. }
  25. public function addPostFilter($postFilter) {
  26. array_push($this->postFilter, $postFilter);
  27. }
  28. public function toArray() {
  29. $policy_array = array('url' => $this->url, 'method' => $this->method, 'allow' => $this->allow);
  30. if (!is_null($this->queryFilter)) {
  31. if (count($this->queryFilter) > 0) {
  32. $policy_array['query_filter'] = $this->queryFilter;
  33. } else {
  34. $policy_array['query_filter'] = new \stdClass();
  35. }
  36. }
  37. if (!is_null($this->postFilter)) {
  38. if (count($this->postFilter) > 0) {
  39. $policy_array['post_filter'] = $this->postFilter;
  40. } else {
  41. $policy_array['post_filter'] = new \stdClass();
  42. }
  43. }
  44. return $policy_array;
  45. }
  46. }