phpmyadmin/libraries/classes/Controllers/Console/Bookmark/AddController.php
Kamil Tekiela 8a1d6f1eaa Convert var annotations to typed properties
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-02-12 21:31:04 +00:00

58 lines
1.8 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Controllers\Console\Bookmark;
use PhpMyAdmin\Bookmark;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
use function __;
use function is_string;
final class AddController extends AbstractController
{
private DatabaseInterface $dbi;
public function __construct(ResponseRenderer $response, Template $template, DatabaseInterface $dbi)
{
parent::__construct($response, $template);
$this->dbi = $dbi;
}
public function __invoke(ServerRequest $request): void
{
$db = $request->getParsedBodyParam('db');
$label = $request->getParsedBodyParam('label');
$bookmarkQuery = $request->getParsedBodyParam('bookmark_query');
$shared = $request->getParsedBodyParam('shared');
if (! is_string($label) || ! is_string($db) || ! is_string($bookmarkQuery) || ! is_string($shared)) {
$this->response->addJSON('message', __('Incomplete params'));
return;
}
$bookmarkFields = [
'bkm_database' => $db,
'bkm_user' => $GLOBALS['cfg']['Server']['user'],
'bkm_sql_query' => $bookmarkQuery,
'bkm_label' => $label,
];
$bookmark = Bookmark::createBookmark($this->dbi, $bookmarkFields, $shared === 'true');
if ($bookmark === false || ! $bookmark->save()) {
$this->response->addJSON('message', __('Failed'));
return;
}
$this->response->addJSON('message', __('Succeeded'));
$this->response->addJSON('data', $bookmarkFields);
$this->response->addJSON('isShared', $shared === 'true');
}
}