Файл: sngine-v2.8/Script/includes/libs/Twilio/TaskRouter/WorkflowConfiguration.php
Строк: 70
<?php
namespace TwilioTaskRouter;
/**
 * 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(array $filters, $default_filter = null) {
        $this->filters = $filters;
        $this->default_filter = $default_filter;
    }
    public function toJSON() {
        return json_encode($this);
    }
    public static function parse(string $json) {
        return json_decode($json);
    }
    public static function fromJson(string $json): WorkflowConfiguration {
        $configJSON = self::parse($json);
        $default_filter = $configJSON->task_routing->default_filter;
        $filters = [];
        foreach ($configJSON->task_routing->filters as $filter) {
            // friendly_name and filter_friendly_name should map to same variable
            $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(): array {
        $json = [];
        $task_routing = [];
        $task_routing['filters'] = $this->filters;
        $task_routing['default_filter'] = $this->default_filter;
        $json['task_routing'] = $task_routing;
        return $json;
    }
}