public static function factory($config = array()) { $default = array('host' => 'api.trak.io/v1', 'https' => true); $config = array_merge($config, $default); $required = array('token', 'host', 'https'); self::validate($required, $config); $config = Collection::fromConfig($config, $default, $required); $client = new self(($config->get('https') ? 'https://' : 'http://') . $config->get('host'), $config); $client->setDefaultOption('headers/X-Token', $config->get('token')); $config->hasKey('distinct_id') ? $client->distinct_id($config->get('distinct_id')) : null; $config->hasKey('channel') ? $client->channel($config->get('channel')) : null; $client->setDescription(ServiceDescription::factory(__DIR__ . '/Resources/config/client.json')); return $client; }
public static function parse_list($response) { $result = array(); $res = Text::parse_json($response); if (!empty($res)) { foreach ($res as $re) { $obj = new self(); $obj->user(WassrUser::parse($re["user"])); unset($re["user"]); $obj->channel(WassrChannel::parse($re["channel"])); unset($re["channel"]); $result[] = $obj->cp($re); } } return $result; }