Example #1
0
 /**
  * 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;
 }
Example #2
0
 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;
 }
Example #3
0
 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;
 }
Example #4
0
 /**
  * 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;
 }