summaryrefslogtreecommitdiffstats
path: root/Twilio/TaskRouter/WorkflowConfiguration.php
diff options
context:
space:
mode:
authorJustin Witz <jwitz@twilio.com>2016-08-16 15:52:42 -0700
committerJustin Witz <jwitz@twilio.com>2016-08-16 15:52:42 -0700
commit3b281d31d6bf3554eac3d52d8abe8cdc20093f1c (patch)
tree3f17ae0b228d926fa91215720d2f8d47cf9deb4a /Twilio/TaskRouter/WorkflowConfiguration.php
parent4d7be745f5d6b0d261fb36be8c91a7c25d55f956 (diff)
downloadtwilio-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.php50
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