50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?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;
 | 
						|
	}
 | 
						|
} |