refactor: unify command complition checking

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-09-25 12:14:37 -04:00
parent 1b68c99521
commit 6a36e91cb4
21 changed files with 132 additions and 80 deletions
+31
View File
@@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
namespace KTXM\ProviderImap\Client\Protocol;
use KTXM\ProviderImap\Client\CommandFailedException;
use KTXM\ProviderImap\Client\ImapException;
use KTXM\ProviderImap\Client\Protocol\Parser\ResponseCodeParser;
use KTXM\ProviderImap\Client\Protocol\Response\TaggedResponse;
final class CompletionChecker
{
public static function assertSuccess(string $command, TaggedResponse $response): void
{
if ($response->isOk()) {
return;
}
if (!in_array($response->status(), ['NO', 'BAD'], true)) {
throw new ImapException($command . ' received an invalid completion status: ' . $response->status());
}
throw new CommandFailedException(
$command,
$response->status(),
$response->text(),
(new ResponseCodeParser())->parse($response->text()),
);
}
}