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:
parent
c212478ac8
commit
e0c1eea7c5
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user