diff options
author | Justin Witz <jwitz@twilio.com> | 2016-08-16 15:52:42 -0700 |
---|---|---|
committer | Justin Witz <jwitz@twilio.com> | 2016-08-16 15:52:42 -0700 |
commit | 3b281d31d6bf3554eac3d52d8abe8cdc20093f1c (patch) | |
tree | 3f17ae0b228d926fa91215720d2f8d47cf9deb4a /Twilio/TaskRouter/WorkflowConfiguration.php | |
parent | 4d7be745f5d6b0d261fb36be8c91a7c25d55f956 (diff) | |
download | twilio-php-origin/workflow-configuration.zip twilio-php-origin/workflow-configuration.tar.gz twilio-php-origin/workflow-configuration.tar.bz2 |
Port WorkflowConfiguration to PHP 5.0+origin/workflow-configuration
Diffstat (limited to 'Twilio/TaskRouter/WorkflowConfiguration.php')
-rw-r--r-- | Twilio/TaskRouter/WorkflowConfiguration.php | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Twilio/TaskRouter/WorkflowConfiguration.php b/Twilio/TaskRouter/WorkflowConfiguration.php new file mode 100644 index 0000000..4b8b88e --- /dev/null +++ b/Twilio/TaskRouter/WorkflowConfiguration.php @@ -0,0 +1,50 @@ +<?php + +namespace Twilio\TaskRouter; + +/** + * Twilio TaskRouter Workflow Builder + * + * @author Justin Witz <jwitz@twilio.com> + * @license http://creativecommons.org/licenses/MIT/ MIT + */ +class WorkflowConfiguration implements JsonSerializable { + public $filters; + public $default_filter; + + public function __construct($filters, $default_filter = null) + { + $this->filters = $filters; + $this->default_filter = $default_filter; + } + + public function toJSON() { + return json_encode($this); + } + + public static function parse($json) { + return json_decode($json); + } + + public static function fromJson($json) { + $configJSON = self::parse($json); + $default_filter = $configJSON->task_routing->default_filter; + $filters = array(); + foreach($configJSON->task_routing->filters as $filter) { + // friendly_name and filter_friendly_name should map to same variable + $friendly_name = isset($filter->filter_friendly_name) ? $filter->filter_friendly_name : $filter->friendly_name; + $filter = new WorkflowRule($filter->expression, $filter->targets, $friendly_name); + $filters[] = $filter; + } + return new WorkflowConfiguration($filters, $default_filter); + } + + public function jsonSerialize() { + $json = array(); + $task_routing = array(); + $task_routing["filters"] = $this->filters; + $task_routing["default_filter"] = $this->default_filter; + $json["task_routing"] = $task_routing; + return $json; + } +}
\ No newline at end of file |