JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrtempFolderPath = sys_get_temp_dir(); } /** * Sets API key * * @param string $key API key or token * * @return $this */ public function setApiKey($key) { $this->apiKey = $key; return $this; } public static function setXenditKey($key) { Configuration::getDefaultConfiguration()->setApiKey($key); } /** * Gets API key * * @return null|string API key */ public function getApiKey() { return $this->apiKey; } /** * Sets boolean format for query string. * * @param string $booleanFormatForQueryString Boolean format for query string * * @return $this */ public function setBooleanFormatForQueryString(string $booleanFormat) { $this->booleanFormatForQueryString = $booleanFormat; return $this; } /** * Gets boolean format for query string. * * @return string Boolean format for query string */ public function getBooleanFormatForQueryString(): string { return $this->booleanFormatForQueryString; } /** * Sets the host * * @param string $host Host * * @return $this */ public function setHost($host) { $this->host = $host; return $this; } /** * Gets the host * * @return string Host */ public function getHost() { return $this->host; } /** * Sets the user agent of the api client * * @param string $userAgent the user agent of the api client * * @throws \InvalidArgumentException * @return $this */ public function setUserAgent($userAgent) { if (!is_string($userAgent)) { throw new \InvalidArgumentException('User-agent must be a string.'); } $this->userAgent = $userAgent; return $this; } /** * Gets the user agent of the api client * * @return string user agent */ public function getUserAgent() { return $this->userAgent; } /** * Sets debug flag * * @param bool $debug Debug flag * * @return $this */ public function setDebug($debug) { $this->debug = $debug; return $this; } /** * Gets the debug flag * * @return bool */ public function getDebug() { return $this->debug; } /** * Sets the debug file * * @param string $debugFile Debug file * * @return $this */ public function setDebugFile($debugFile) { $this->debugFile = $debugFile; return $this; } /** * Gets the debug file * * @return string */ public function getDebugFile() { return $this->debugFile; } /** * Sets the temp folder path * * @param string $tempFolderPath Temp folder path * * @return $this */ public function setTempFolderPath($tempFolderPath) { $this->tempFolderPath = $tempFolderPath; return $this; } /** * Gets the temp folder path * * @return string Temp folder path */ public function getTempFolderPath() { return $this->tempFolderPath; } /** * Gets the default configuration instance * * @return Configuration */ public static function getDefaultConfiguration() { if (self::$defaultConfiguration === null) { self::$defaultConfiguration = new Configuration(); } return self::$defaultConfiguration; } /** * Sets the default configuration instance * * @param Configuration $config An instance of the Configuration Object * * @return void */ public static function setDefaultConfiguration(Configuration $config) { self::$defaultConfiguration = $config; } /** * Gets the essential information for debugging * * @return string The report for debugging */ public static function toDebugReport() { $report = 'PHP SDK (Xendit) Debug Report:' . PHP_EOL; $report .= ' OS: ' . php_uname() . PHP_EOL; $report .= ' PHP Version: ' . PHP_VERSION . PHP_EOL; $report .= ' The version of the OpenAPI document: 1.70.0' . PHP_EOL; $report .= ' SDK Package Version: 6.0.0' . PHP_EOL; $report .= ' Temp Folder Path: ' . self::getDefaultConfiguration()->getTempFolderPath() . PHP_EOL; return $report; } /** * Returns an array of host settings * * @return array an array of host settings */ public function getHostSettings() { return [ [ "url" => "https://api.xendit.co", "description" => "Xendit API Server", ] ]; } /** * Returns URL based on host settings, index and variables * * @param array $hostSettings array of host settings, generated from getHostSettings() or equivalent from the API clients * @param int $hostIndex index of the host settings * @param array|null $variables hash of variable and the corresponding value (optional) * @return string URL based on host settings */ public static function getHostString(array $hostsSettings, $hostIndex, array $variables = null) { if (null === $variables) { $variables = []; } // check array index out of bound if ($hostIndex < 0 || $hostIndex >= count($hostsSettings)) { throw new \InvalidArgumentException("Invalid index $hostIndex when selecting the host. Must be less than ".count($hostsSettings)); } $host = $hostsSettings[$hostIndex]; $url = $host["url"]; // go through variable and assign a value foreach ($host["variables"] ?? [] as $name => $variable) { if (array_key_exists($name, $variables)) { // check to see if it's in the variables provided by the user if (!isset($variable['enum_values']) || in_array($variables[$name], $variable["enum_values"], true)) { // check to see if the value is in the enum $url = str_replace("{".$name."}", $variables[$name], $url); } else { throw new \InvalidArgumentException("The variable `$name` in the host URL has invalid value ".$variables[$name].". Must be ".join(',', $variable["enum_values"])."."); } } else { // use default value $url = str_replace("{".$name."}", $variable["default_value"], $url); } } return $url; } /** * Returns URL based on the index and variables * * @param int $index index of the host settings * @param array|null $variables hash of variable and the corresponding value (optional) * @return string URL based on host settings */ public function getHostFromSettings($index, $variables = null) { return self::getHostString($this->getHostSettings(), $index, $variables); } }