diff --git a/lib/Client.php b/lib/Client.php index 01526110..b8790e7c 100644 --- a/lib/Client.php +++ b/lib/Client.php @@ -103,6 +103,7 @@ public function shareFile(File $file, array $recipients, ?array $metadata, array 'headers' => $headers, 'multipart' => $multipart, 'verify' => !$this->config->insecureSkipVerify(), + 'timeout' => $this->config->getRequestTimeout(), ]); $body = $response->getBody(); return json_decode($body, true); @@ -120,6 +121,7 @@ public function signFile(string $id, array $multipart, array $account, string $s 'headers' => $headers, 'multipart' => $multipart, 'verify' => !$this->config->insecureSkipVerify(), + 'timeout' => $this->config->getRequestTimeout(), ]); $body = $response->getBody(); return json_decode($body, true); @@ -136,6 +138,7 @@ public function deleteFile(string $id, array $account, string $server): array { $response = $client->delete($server . 'api/v1/files/' . rawurlencode($account['id']) . '/' . rawurlencode($id), [ 'headers' => $headers, 'verify' => !$this->config->insecureSkipVerify(), + 'timeout' => $this->config->getRequestTimeout(), ]); $body = $response->getBody(); return json_decode($body, true); @@ -172,6 +175,7 @@ public function downloadSignedFile(string $id, array $account, string $server) { $response = $client->get($url, [ 'headers' => $headers, 'verify' => !$this->config->insecureSkipVerify(), + 'timeout' => $this->config->getRequestTimeout(), ]); $body = $response->getBody(); return $body; @@ -190,6 +194,7 @@ public function getSignatureDetails(string $id, array $account, string $server, $response = $client->get($url, [ 'headers' => $headers, 'verify' => !$this->config->insecureSkipVerify(), + 'timeout' => $this->config->getRequestTimeout(), ]); $body = $response->getBody(); return $body; @@ -230,6 +235,7 @@ public function verifySignatures(File $file, array $account, string $server) { 'headers' => $headers, 'multipart' => $multipart, 'verify' => !$this->config->insecureSkipVerify(), + 'timeout' => $this->config->getRequestTimeout(), ]); $body = $response->getBody(); return json_decode($body, true); diff --git a/lib/Config.php b/lib/Config.php index 7e34f438..8b9af060 100644 --- a/lib/Config.php +++ b/lib/Config.php @@ -36,6 +36,7 @@ class Config { public const DEFAULT_API_SERVER = "https://api.certificate24.com/"; public const DEFAULT_WEB_SERVER = "https://www.certificate24.com/"; + public const DEFAULT_REQUEST_TIMEOUT = '300'; public const DEFAULT_SAVE_MODE = 'new'; private IConfig $config; @@ -71,6 +72,15 @@ public function getWebServer(): string { return $server; } + public function getRequestTimeout(): int { + $timeout = $this->config->getAppValue(self::APP_ID, 'timeout', self::DEFAULT_REQUEST_TIMEOUT); + if (empty($timeout)) { + $timeout = self::DEFAULT_REQUEST_TIMEOUT; + } + + return (int) $timeout; + } + public function getAccount(): array { $account = $this->config->getAppValue(self::APP_ID, 'account', ''); if (!$account) {