/** * Prepare the object to retrieve access token for * specific driver */ public function __construct($provider) { if (!isset(Tool::getConfig()['oauth'][$provider])) { Tool::log('OAuth settings not configured for provider \'' . $provider . '\' in config.php'); Tool::endWithJson([], 500); exit; } $config = Tool::getConfig()['oauth'][$provider]; $this->service = $provider; if ($provider == 'github') { $this->provider = new \League\OAuth2\Client\Provider\Github(['clientId' => $config['clientId'], 'clientSecret' => $config['clientSecret']]); } else { Tool::endWithJson(["error" => "OAuth Provider " . $provider . " doesn\\'t exist"], 500); exit; } }
private function parseRangeHeader() { global $app; $requested = new \stdClass(); $returned = new \stdClass(); // Parsing requested header of fallback // to a default value if ($app->request->headers['x-range'] && preg_match('/^([0-9]+)-([0-9]+)$/', $app->request->headers['x-range'], $start_end)) { array_splice($start_end, 0, 1); $requested->startIndex = $start_end[0]; $requested->endIndex = $start_end[1]; } else { if (!isset(Tool::getConfig()['default_number_of_models_per_page'])) { $app->error(new \Exception('default_number_of_models_per_page is not set in config.php')); } $defaultLength = Tool::getConfig()['default_number_of_models_per_page']; $requested->startIndex = 0; $requested->endIndex = --$defaultLength; } if ($this->length == 0) { $this->responseStatus = 200; $this->page = []; return; } elseif ($requested->startIndex >= $this->length) { $this->responseStatus = 400; $this->page = ["error" => "Start at unexisting index"]; return; } elseif ($requested->endIndex >= $this->length) { $returned->endIndex = $this->length - 1; } else { $returned->endIndex = $requested->endIndex; } $returned->startIndex = $requested->startIndex; if ($returned->startIndex == 0 && $returned->endIndex == $this->length - 1) { $this->responseStatus = 200; } else { $this->responseStatus = 206; } $this->currentRange = $returned; }