aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Controllers/AjaxController.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Controllers/AjaxController.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Controllers/AjaxController.php97
1 files changed, 97 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Controllers/AjaxController.php b/srcs/phpmyadmin/libraries/classes/Controllers/AjaxController.php
new file mode 100644
index 0000000..0662277
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Controllers/AjaxController.php
@@ -0,0 +1,97 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Controllers\AjaxController
+ *
+ * @package PhpMyAdmin\Controllers
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Controllers;
+
+use PhpMyAdmin\Config;
+use PhpMyAdmin\DatabaseInterface;
+use PhpMyAdmin\Message;
+use PhpMyAdmin\Response;
+use PhpMyAdmin\Template;
+
+/**
+ * Class AjaxController
+ * @package PhpMyAdmin\Controllers
+ */
+class AjaxController extends AbstractController
+{
+ /**
+ * @var Config
+ */
+ private $config;
+
+ /**
+ * AjaxController constructor.
+ *
+ * @param Response $response Response instance
+ * @param DatabaseInterface $dbi DatabaseInterface instance
+ * @param Template $template Template object
+ * @param Config $config Config instance
+ */
+ public function __construct($response, $dbi, Template $template, $config)
+ {
+ parent::__construct($response, $dbi, $template);
+ $this->config = $config;
+ }
+
+ /**
+ * @return array JSON
+ */
+ public function databases(): array
+ {
+ global $dblist;
+
+ return ['databases' => $dblist->databases];
+ }
+
+ /**
+ * @param array $params Request parameters
+ * @return array JSON
+ */
+ public function tables(array $params): array
+ {
+ return ['tables' => $this->dbi->getTables($params['db'])];
+ }
+
+ /**
+ * @param array $params Request parameters
+ * @return array JSON
+ */
+ public function columns(array $params): array
+ {
+ return [
+ 'columns' => $this->dbi->getColumnNames(
+ $params['db'],
+ $params['table']
+ ),
+ ];
+ }
+
+ /**
+ * @param array $params Request parameters
+ * @return array JSON
+ */
+ public function getConfig(array $params): array
+ {
+ return ['value' => $this->config->get($params['key'])];
+ }
+
+ /**
+ * @param array $params Request parameters
+ * @return true|Message
+ */
+ public function setConfig(array $params)
+ {
+ return $this->config->setUserValue(
+ null,
+ $params['key'],
+ json_decode($params['value'])
+ );
+ }
+}