integrations = new IntegrationsRepository($this->pdo); $this->cipher = new IntegrationSecretCipher($this->secret); } /** * @return array */ public function getSettings(): array { $integrationId = $this->ensureBaseIntegration(); $integration = $this->integrations->findById($integrationId); return [ 'has_api_key' => trim((string) ($integration['api_key_encrypted'] ?? '')) !== '', ]; } /** * @param array $payload */ public function saveSettings(array $payload): void { $integrationId = $this->ensureBaseIntegration(); $apiKey = trim((string) ($payload['api_key'] ?? '')); if ($apiKey === '') { return; } $encrypted = $this->cipher->encrypt($apiKey); $this->integrations->updateApiKeyEncrypted($integrationId, $encrypted); } private function ensureBaseIntegration(): int { return $this->integrations->ensureIntegration( self::INTEGRATION_TYPE, self::INTEGRATION_NAME, self::INTEGRATION_BASE_URL, 20, true ); } }