Push the AbstractController::sendErrorResponse method down

It's only used in Table\DropColumnConfirmationController.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
Maurício Meneghini Fauth 2024-04-05 13:46:08 -03:00
parent c212478ac8
commit e0c1eea7c5
No known key found for this signature in database
GPG Key ID: 6A16FD38AFC89CC8
3 changed files with 16 additions and 72 deletions

View File

@ -71,20 +71,4 @@ abstract class AbstractController implements InvocableController
return ! $foundError;
}
/** @psalm-param StatusCodeInterface::STATUS_* $statusCode */
protected function sendErrorResponse(string $message, int $statusCode = 400): void
{
$this->response->setStatusCode($statusCode);
$this->response->setRequestStatus(false);
if ($this->response->isAjax()) {
$this->response->addJSON('isErrorResponse', true);
$this->response->addJSON('message', $message);
return;
}
$this->response->addHTML(Message::error($message)->getDisplay());
}
}

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Table;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Http\Response;
@ -80,4 +81,19 @@ final class DropColumnConfirmationController extends AbstractController
return null;
}
private function sendErrorResponse(string $message): void
{
$this->response->setStatusCode(StatusCodeInterface::STATUS_BAD_REQUEST);
$this->response->setRequestStatus(false);
if ($this->response->isAjax()) {
$this->response->addJSON('isErrorResponse', true);
$this->response->addJSON('message', $message);
return;
}
$this->response->addHTML(Message::error($message)->getDisplay());
}
}

View File

@ -4,7 +4,6 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\MySQLDocumentation;
@ -86,59 +85,4 @@ class AbstractControllerTest extends AbstractTestCase
self::assertTrue($controller->testCheckParameters(['param1', 'param2']));
self::assertSame(200, $response->getResponse()->getStatusCode());
}
public function testSendErrorResponseWithJson(): void
{
$response = new ResponseRenderer();
$response->setAjax(true);
$controller = new class ($response, new Template()) extends AbstractController {
public function __invoke(ServerRequest $request): Response|null
{
return null;
}
/** @psalm-param StatusCodeInterface::STATUS_* $statusCode */
public function testSendErrorResponse(string $message, int $statusCode = 400): void
{
$this->sendErrorResponse($message, $statusCode);
}
};
$controller->testSendErrorResponse('Error message.', 404);
self::assertSame(404, $response->getResponse()->getStatusCode());
self::assertFalse($response->hasSuccessState());
self::assertSame('', $response->getHTMLResult());
self::assertSame(['isErrorResponse' => true, 'message' => 'Error message.'], $response->getJSONResult());
}
public function testSendErrorResponseWithHtml(): void
{
$response = new ResponseRenderer();
$response->setAjax(false);
$controller = new class ($response, new Template()) extends AbstractController {
public function __invoke(ServerRequest $request): Response|null
{
return null;
}
/** @psalm-param StatusCodeInterface::STATUS_* $statusCode */
public function testSendErrorResponse(string $message, int $statusCode = 400): void
{
$this->sendErrorResponse($message, $statusCode);
}
};
$controller->testSendErrorResponse('Error message.', 404);
self::assertSame(404, $response->getResponse()->getStatusCode());
self::assertFalse($response->hasSuccessState());
self::assertSame(
Message::error('Error message.')->getDisplay(),
$response->getHTMLResult(),
);
self::assertSame([], $response->getJSONResult());
}
}