From: Marcel Werk Date: Fri, 22 Nov 2024 11:19:03 +0000 (+0100) Subject: Change RPC route to lowercase X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=7df7fd3b07d4b9a5a6fdff453cb8d5cda6aae4ed;p=GitHub%2FWoltLab%2FWCF.git Change RPC route to lowercase --- diff --git a/ts/WoltLabSuite/Core/Api/GridViews/GetRows.ts b/ts/WoltLabSuite/Core/Api/GridViews/GetRows.ts deleted file mode 100644 index a262a51b57..0000000000 --- a/ts/WoltLabSuite/Core/Api/GridViews/GetRows.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { prepareRequest } from "WoltLabSuite/Core/Ajax/Backend"; -import { ApiResult, apiResultFromError, apiResultFromValue } from "../Result"; - -type Response = { - template: string; - pages: number; - totalRows: number; - filterLabels: ArrayLike; -}; - -export async function getRows( - gridViewClass: string, - pageNo: number, - sortField: string = "", - sortOrder: string = "ASC", - filters?: Map, - gridViewParameters?: Map, -): Promise> { - const url = new URL(`${window.WSC_RPC_API_URL}core/gridViews/rows`); - url.searchParams.set("gridView", gridViewClass); - url.searchParams.set("pageNo", pageNo.toString()); - url.searchParams.set("sortField", sortField); - url.searchParams.set("sortOrder", sortOrder); - if (filters) { - filters.forEach((value, key) => { - url.searchParams.set(`filters[${key}]`, value); - }); - } - if (gridViewParameters) { - gridViewParameters.forEach((value, key) => { - url.searchParams.set(`gridViewParameters[${key}]`, value); - }); - } - - let response: Response; - try { - response = (await prepareRequest(url).get().allowCaching().disableLoadingIndicator().fetchAsJson()) as Response; - } catch (e) { - return apiResultFromError(e); - } - - return apiResultFromValue(response); -} diff --git a/ts/WoltLabSuite/Core/Api/Gridviews/GetRows.ts b/ts/WoltLabSuite/Core/Api/Gridviews/GetRows.ts new file mode 100644 index 0000000000..142f6b15b6 --- /dev/null +++ b/ts/WoltLabSuite/Core/Api/Gridviews/GetRows.ts @@ -0,0 +1,43 @@ +import { prepareRequest } from "WoltLabSuite/Core/Ajax/Backend"; +import { ApiResult, apiResultFromError, apiResultFromValue } from "../Result"; + +type Response = { + template: string; + pages: number; + totalRows: number; + filterLabels: ArrayLike; +}; + +export async function getRows( + gridViewClass: string, + pageNo: number, + sortField: string = "", + sortOrder: string = "ASC", + filters?: Map, + gridViewParameters?: Map, +): Promise> { + const url = new URL(`${window.WSC_RPC_API_URL}core/gridviews/rows`); + url.searchParams.set("gridView", gridViewClass); + url.searchParams.set("pageNo", pageNo.toString()); + url.searchParams.set("sortField", sortField); + url.searchParams.set("sortOrder", sortOrder); + if (filters) { + filters.forEach((value, key) => { + url.searchParams.set(`filters[${key}]`, value); + }); + } + if (gridViewParameters) { + gridViewParameters.forEach((value, key) => { + url.searchParams.set(`gridViewParameters[${key}]`, value); + }); + } + + let response: Response; + try { + response = (await prepareRequest(url).get().allowCaching().disableLoadingIndicator().fetchAsJson()) as Response; + } catch (e) { + return apiResultFromError(e); + } + + return apiResultFromValue(response); +} diff --git a/ts/WoltLabSuite/Core/Component/GridView.ts b/ts/WoltLabSuite/Core/Component/GridView.ts index ba0d4b751d..a0a82ba9c5 100644 --- a/ts/WoltLabSuite/Core/Component/GridView.ts +++ b/ts/WoltLabSuite/Core/Component/GridView.ts @@ -1,4 +1,4 @@ -import { getRows } from "../Api/GridViews/GetRows"; +import { getRows } from "../Api/Gridviews/GetRows"; import DomChangeListener from "../Dom/Change/Listener"; import DomUtil from "../Dom/Util"; import { promiseMutex } from "../Helper/PromiseMutex"; diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Api/GridViews/GetRows.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Api/GridViews/GetRows.js deleted file mode 100644 index 3299f1af96..0000000000 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Api/GridViews/GetRows.js +++ /dev/null @@ -1,30 +0,0 @@ -define(["require", "exports", "WoltLabSuite/Core/Ajax/Backend", "../Result"], function (require, exports, Backend_1, Result_1) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getRows = getRows; - async function getRows(gridViewClass, pageNo, sortField = "", sortOrder = "ASC", filters, gridViewParameters) { - const url = new URL(`${window.WSC_RPC_API_URL}core/gridViews/rows`); - url.searchParams.set("gridView", gridViewClass); - url.searchParams.set("pageNo", pageNo.toString()); - url.searchParams.set("sortField", sortField); - url.searchParams.set("sortOrder", sortOrder); - if (filters) { - filters.forEach((value, key) => { - url.searchParams.set(`filters[${key}]`, value); - }); - } - if (gridViewParameters) { - gridViewParameters.forEach((value, key) => { - url.searchParams.set(`gridViewParameters[${key}]`, value); - }); - } - let response; - try { - response = (await (0, Backend_1.prepareRequest)(url).get().allowCaching().disableLoadingIndicator().fetchAsJson()); - } - catch (e) { - return (0, Result_1.apiResultFromError)(e); - } - return (0, Result_1.apiResultFromValue)(response); - } -}); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Api/Gridviews/GetRows.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Api/Gridviews/GetRows.js new file mode 100644 index 0000000000..8e0931892b --- /dev/null +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Api/Gridviews/GetRows.js @@ -0,0 +1,30 @@ +define(["require", "exports", "WoltLabSuite/Core/Ajax/Backend", "../Result"], function (require, exports, Backend_1, Result_1) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getRows = getRows; + async function getRows(gridViewClass, pageNo, sortField = "", sortOrder = "ASC", filters, gridViewParameters) { + const url = new URL(`${window.WSC_RPC_API_URL}core/gridviews/rows`); + url.searchParams.set("gridView", gridViewClass); + url.searchParams.set("pageNo", pageNo.toString()); + url.searchParams.set("sortField", sortField); + url.searchParams.set("sortOrder", sortOrder); + if (filters) { + filters.forEach((value, key) => { + url.searchParams.set(`filters[${key}]`, value); + }); + } + if (gridViewParameters) { + gridViewParameters.forEach((value, key) => { + url.searchParams.set(`gridViewParameters[${key}]`, value); + }); + } + let response; + try { + response = (await (0, Backend_1.prepareRequest)(url).get().allowCaching().disableLoadingIndicator().fetchAsJson()); + } + catch (e) { + return (0, Result_1.apiResultFromError)(e); + } + return (0, Result_1.apiResultFromValue)(response); + } +}); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js index 562d5dca5e..addb5e72bd 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js @@ -1,4 +1,4 @@ -define(["require", "exports", "tslib", "../Api/GridViews/GetRows", "../Dom/Change/Listener", "../Dom/Util", "../Helper/PromiseMutex", "../Ui/Dropdown/Simple", "./Dialog"], function (require, exports, tslib_1, GetRows_1, Listener_1, Util_1, PromiseMutex_1, Simple_1, Dialog_1) { +define(["require", "exports", "tslib", "../Api/Gridviews/GetRows", "../Dom/Change/Listener", "../Dom/Util", "../Helper/PromiseMutex", "../Ui/Dropdown/Simple", "./Dialog"], function (require, exports, tslib_1, GetRows_1, Listener_1, Util_1, PromiseMutex_1, Simple_1, Dialog_1) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridView = void 0; diff --git a/wcfsetup/install/files/lib/bootstrap/com.woltlab.wcf.php b/wcfsetup/install/files/lib/bootstrap/com.woltlab.wcf.php index 60ddb452b2..22f5a5a0a2 100644 --- a/wcfsetup/install/files/lib/bootstrap/com.woltlab.wcf.php +++ b/wcfsetup/install/files/lib/bootstrap/com.woltlab.wcf.php @@ -135,7 +135,7 @@ return static function (): void { $event->register(new \wcf\system\endpoint\controller\core\comments\responses\RenderResponses); $event->register(new \wcf\system\endpoint\controller\core\comments\responses\UpdateResponse); $event->register(new \wcf\system\endpoint\controller\core\exceptions\RenderException); - $event->register(new \wcf\system\endpoint\controller\core\gridViews\GetRows); + $event->register(new \wcf\system\endpoint\controller\core\gridviews\GetRows); $event->register(new \wcf\system\endpoint\controller\core\messages\GetMentionSuggestions); $event->register(new \wcf\system\endpoint\controller\core\sessions\DeleteSession); $event->register(new \wcf\system\endpoint\controller\core\users\options\DeleteOption); diff --git a/wcfsetup/install/files/lib/system/endpoint/controller/core/gridViews/GetRows.class.php b/wcfsetup/install/files/lib/system/endpoint/controller/core/gridViews/GetRows.class.php deleted file mode 100644 index d1213a60df..0000000000 --- a/wcfsetup/install/files/lib/system/endpoint/controller/core/gridViews/GetRows.class.php +++ /dev/null @@ -1,82 +0,0 @@ - - * @since 6.2 - */ -#[GetRequest('/core/gridViews/rows')] -final class GetRows implements IController -{ - #[\Override] - public function __invoke(ServerRequestInterface $request, array $variables): ResponseInterface - { - $parameters = Helper::mapApiParameters($request, GetRowsParameters::class); - - if (!\is_subclass_of($parameters->gridView, AbstractGridView::class)) { - throw new UserInputException('gridView', 'invalid'); - } - - $view = new $parameters->gridView(...$parameters->gridViewParameters); - \assert($view instanceof AbstractGridView); - - if (!$view->isAccessible()) { - throw new PermissionDeniedException(); - } - - $view->setPageNo($parameters->pageNo); - if ($parameters->sortField) { - $view->setSortField($parameters->sortField); - } - if ($parameters->sortOrder) { - $view->setSortOrder($parameters->sortOrder); - } - - if ($parameters->filters !== []) { - $view->setActiveFilters($parameters->filters); - } - - $filterLabels = []; - foreach (\array_keys($parameters->filters) as $key) { - $filterLabels[$key] = $view->getFilterLabel($key); - } - - return new JsonResponse([ - 'template' => $view->renderRows(), - 'pages' => $view->countPages(), - 'totalRows' => $view->countRows(), - 'filterLabels' => $filterLabels, - ]); - } -} - -/** @internal */ -final class GetRowsParameters -{ - public function __construct( - /** @var non-empty-string */ - public readonly string $gridView, - public readonly int $pageNo, - public readonly string $sortField, - public readonly string $sortOrder, - /** @var string[] */ - public readonly array $filters, - /** @var string[] */ - public readonly array $gridViewParameters, - ) {} -} diff --git a/wcfsetup/install/files/lib/system/endpoint/controller/core/gridviews/GetRows.class.php b/wcfsetup/install/files/lib/system/endpoint/controller/core/gridviews/GetRows.class.php new file mode 100644 index 0000000000..a2dc415696 --- /dev/null +++ b/wcfsetup/install/files/lib/system/endpoint/controller/core/gridviews/GetRows.class.php @@ -0,0 +1,82 @@ + + * @since 6.2 + */ +#[GetRequest('/core/gridviews/rows')] +final class GetRows implements IController +{ + #[\Override] + public function __invoke(ServerRequestInterface $request, array $variables): ResponseInterface + { + $parameters = Helper::mapApiParameters($request, GetRowsParameters::class); + + if (!\is_subclass_of($parameters->gridView, AbstractGridView::class)) { + throw new UserInputException('gridView', 'invalid'); + } + + $view = new $parameters->gridView(...$parameters->gridViewParameters); + \assert($view instanceof AbstractGridView); + + if (!$view->isAccessible()) { + throw new PermissionDeniedException(); + } + + $view->setPageNo($parameters->pageNo); + if ($parameters->sortField) { + $view->setSortField($parameters->sortField); + } + if ($parameters->sortOrder) { + $view->setSortOrder($parameters->sortOrder); + } + + if ($parameters->filters !== []) { + $view->setActiveFilters($parameters->filters); + } + + $filterLabels = []; + foreach (\array_keys($parameters->filters) as $key) { + $filterLabels[$key] = $view->getFilterLabel($key); + } + + return new JsonResponse([ + 'template' => $view->renderRows(), + 'pages' => $view->countPages(), + 'totalRows' => $view->countRows(), + 'filterLabels' => $filterLabels, + ]); + } +} + +/** @internal */ +final class GetRowsParameters +{ + public function __construct( + /** @var non-empty-string */ + public readonly string $gridView, + public readonly int $pageNo, + public readonly string $sortField, + public readonly string $sortOrder, + /** @var string[] */ + public readonly array $filters, + /** @var string[] */ + public readonly array $gridViewParameters, + ) {} +}