| | |
| | | |
| | | use Exception; |
| | | use JVBase\managers\Cache; |
| | | use JVBase\managers\queue\Queue; |
| | | use JVBase\managers\UploadManager; |
| | | use JVBase\registrar\Registrar; |
| | | use WP_Error; |
| | |
| | | |
| | | return $this->response(false, 'Failed to save credentials to database'); |
| | | |
| | | } catch (\Exception $e) { |
| | | } catch (Exception $e) { |
| | | // Revert to old credentials on any error |
| | | $old = Auth::getInstance()->getCredentials( |
| | | $this->service_name, |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | array $data, |
| | | array $options = [] |
| | | ):bool { |
| | | $queue = JVB()->queue(); |
| | | $queue = Queue::getInstance(); |
| | | |
| | | $queued = $queue->queueOperation( |
| | | $type, |
| | |
| | | $this->addSavePost(); |
| | | } |
| | | |
| | | add_action('transition_post_status', [$this, 'handlePostStatusTransition'], 10, 3); |
| | | // add_action('transition_post_status', [$this, 'handlePostStatusTransition'], 10, 3); |
| | | |
| | | if ($this->canSync['delete']) { |
| | | add_action('before_delete_post', [$this, 'handleDeletePost'], 10, 1); |
| | |
| | | 'message' => 'Connection established successfully' |
| | | ]; |
| | | |
| | | } catch (\Exception $e) { |
| | | } catch (Exception $e) { |
| | | return [ |
| | | 'success' => false, |
| | | 'message' => 'Error: ' . $e->getMessage() |
| | |
| | | if ($jpegVersion !== '' && is_int($jpegVersion)) { |
| | | return $jpegVersion; |
| | | } |
| | | $uploader = new UploadManager(); |
| | | $converted = $uploader->convertImageTo($imgID, 'jpeg', 80, false); |
| | | $uploader = UploadManager::getInstance(); |
| | | $converted = $uploader->convertImageTo($imgID, 'jpeg'); |
| | | if ($converted && !is_wp_error($converted)) { |
| | | update_post_meta($imgID, BASE . 'jpeg_version', $converted['attachment_id']); |
| | | return $converted['attachment_id']; |
| | |
| | | |
| | | /** |
| | | * Used by JVBase\registrar\helpers\AddIntegrationFields.php |
| | | * @param string|null $content_type |
| | | * @return array |
| | | */ |
| | | public function getAdditionalFields(?string $content_type = null):array |
| | |
| | | return $this->icon; |
| | | } |
| | | |
| | | public function getUserID():?int |
| | | { |
| | | return $this->userID; |
| | | } |
| | | |
| | | } |