defaultOptionFile = $defaultOptionFile; parent::__construct(); } /** * @inheritdoc */ protected function doInit() { if (!is_readable($this->defaultOptionFile)) { return; } $this->defaultOptions = json_decode(file_get_contents($this->defaultOptionFile), true); if (!is_array($this->defaultOptions)) { $this->defaultOptions = []; } } /** * @return Token */ public function getApiToken() { $tokenData = $this->getOption(self::KEY_API_TOKEN); if (!$tokenData) { return new Token(); } return unserialize($tokenData); } /** * @param Token $apiToken * @return $this */ public function setApiToken(Token $apiToken) { $this->saveOption(self::KEY_API_TOKEN, serialize($apiToken)); return $this; } /** * @return string|null */ public function getApiTokenExpiry() { return $this->getOption(self::KEY_API_TOKEN_EXPIRY); } /** * @param string|null $apiTokenExpiry * @return $this */ public function setApiTokenExpiry($apiTokenExpiry) { $this->saveOption(self::KEY_API_TOKEN_EXPIRY, $apiTokenExpiry); return $this; } /** * @return string|null */ public function getApiBaseUrl() { return $this->defaultOptions['apiBaseUrl'] ?? null; } /** * @return string|null */ public function getApiClientSecret() { return $this->getOption(self::KEY_API_CLIENT_SECRET); } /** * @param string|null $apiClientSecret * @return $this */ public function setApiClientSecret($apiClientSecret) { $this->saveOption(self::KEY_API_CLIENT_SECRET, $apiClientSecret); return $this; } /** * @return string|null */ public function getApiClientId() { return $this->getOption(self::KEY_API_CLIENT_ID); } /** * @param string|null $apiClientId * @return $this */ public function setApiClientId($apiClientId) { $this->saveOption(self::KEY_API_CLIENT_ID, $apiClientId); return $this; } /** * @return string|null */ public function getApiOAuthUrlToken() { return $this->defaultOptions['apiOAuthUrlToken'] ?? null; } /** * @return string|null */ public function getApiOAuthUrlAuthenticate() { return $this->defaultOptions['apiOAuthUrlAuthorize'] ?? null; } /** * @param string $key * @param null|mixed $defaultValue * @return mixed|null */ private function getOption($key, $defaultValue = null) { return get_option($key, $defaultValue); } /** * @param string $key * @param null|mixed $value * @return bool */ private function saveOption($key, $value) { return update_option($key, $value); } }