| | |
| | | public function testConnection(bool $force = false): bool |
| | | { |
| | | if (!$this->isSetUp()) { |
| | | return false; |
| | | return true; |
| | | } |
| | | $this->ensureInitialized(); |
| | | |
| | |
| | | return false; |
| | | } |
| | | |
| | | // Cache test results to avoid excessive API calls |
| | | $cacheKey = "connection_test_$this->service_name" . ($this->userID ? "_$this->userID" : ''); |
| | | $cached = $this->cache->get($cacheKey); |
| | | |
| | | if ($cached !== false && !$force) { |
| | | return (bool)$cached; |
| | | } |
| | | |
| | | try { |
| | | if (!$this->hasOAuthCredentials()){ |
| | |
| | | } |
| | | |
| | | $this->updateLastTestedTime(); |
| | | $this->cache->set($cacheKey, $result, 300); // Cache for 5 minutes |
| | | return $result; |
| | | } catch (Exception $e) { |
| | | $this->logError('Connection test failed', ['error' => $e->getMessage()]); |
| | | $this->cache->set($cacheKey, false, 60); // Cache failure for 1 minute |
| | | $this->logError('testConnection', $e->getMessage()); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | return $this->icon; |
| | | } |
| | | |
| | | public function getUserID():?int |
| | | { |
| | | return $this->userID; |
| | | } |
| | | |
| | | } |