/** * Factory method to create a new TogglClient * * The following array keys and values are available options: * - base_url: Base URL of web service * - username: username or API key * - password: password (if empty, then username is a API key) * * See https://www.toggl.com/public/api#api_token for more information on the api token * * @param array|Collection $config Configuration data * * @return self */ public static function factory($config = array()) { $default = array('base_url' => 'https://www.toggl.com/api/{apiVersion}', 'debug' => false, 'apiVersion' => 'v8', 'api_key' => '', 'username' => '', 'password' => ''); $required = array('api_key', 'username', 'password', 'base_url', 'apiVersion'); $config = Collection::fromConfig($config, $default, $required); $client = new self($config->get('base_url'), $config); // Attach a service description to the client if ($config->get('apiVersion') == 'v8') { $description = ServiceDescription::factory(__DIR__ . '/services_v8.json'); } else { die('Only v8 is supported at this time'); } $client->setDescription($description); $client->setDefaultHeaders(array("Content-type" => "application/json")); if (!empty($config->get('api_key'))) { $config->set('username', $config->get('api_key')); $config->set('password', 'api_token'); } if (empty($config->get('password'))) { $config->set('password', 'api_token'); } $authPlugin = new CurlAuthPlugin($config->get('username'), $config->get('password')); $client->addSubscriber($authPlugin); if ($config->get('debug')) { $client->addSubscriber(LogPlugin::getDebugPlugin()); } return $client; }
public static function factory($config = array()) { $default = array('base_url' => '{scheme}://{host}:8000/app_dev.php', 'scheme' => 'http', 'host' => 'localhost'); $config = Collection::fromConfig($config, $default, array()); $client = new self($config->get('base_url'), $config); $description = ServiceDescription::factory(__DIR__ . '/service.json'); $description->setBaseUrl($config->get('base_url')); $client->setDescription($description); $client->setDefaultHeaders(array('X-Acid-Auth' => $config->get('token'))); return $client; }
public static function factory($config = array()) { ParserRegistry::getInstance()->registerParser('uri_template', new MyrrixUriTemplate(ParserRegistry::getInstance()->getParser('uri_template'))); $default = array('base_url' => 'http://{hostname}:{port}', 'hostname' => 'localhost', 'port' => 8080, 'username' => null, 'password' => null); $required = array('hostname', 'port', 'base_url', 'username', 'password'); $config = Collection::fromConfig($config, $default, $required); $client = new self($config->get('base_url'), $config); $client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'service.json')); $client->setDefaultHeaders(array('Accept' => 'text/html')); $authPlugin = new CurlAuthPlugin($config['username'], $config['password']); $client->addSubscriber($authPlugin); return $client; }
/** * Factory method to create a new TogglClient * * The following array keys and values are available options: * - base_url: Base URL of web service * - api_key: API key * * See https://www.toggl.com/public/api#api_token for more information on the api token * * @param array|Collection $config Configuration data * * @return ReportsClient */ public static function factory($config = array()) { $default = array('base_url' => 'https://www.toggl.com/reports/api/{apiVersion}', 'debug' => false, 'apiVersion' => 'v2'); $required = array('api_key', 'base_url', 'apiVersion'); $config = Collection::fromConfig($config, $default, $required); $serviceDescriptionFile = __DIR__ . '/reporting_' . $config->get('apiVersion') . '.json'; $description = ServiceDescription::factory($serviceDescriptionFile); $client = new self($config->get('base_url'), $config); $client->setDescription($description); $client->setDefaultHeaders(array("Content-type" => "application/json")); $authPlugin = new CurlAuthPlugin($config->get('api_key'), 'api_token'); $client->addSubscriber($authPlugin); if ($config->get('debug')) { $client->addSubscriber(LogPlugin::getDebugPlugin()); } return $client; }