From 868337134de472f31acb7f56e75b3e95eb1af669 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Tue, 24 Jun 2025 12:59:10 +0200 Subject: [PATCH] feat: get permissions call --- web/src/api/admin/permissions.ts | 16 ++++++++++++++++ web/src/pages/Admin/Users/index.tsx | 7 +++++++ web/src/types/index.ts | 7 +++++++ 3 files changed, 30 insertions(+) create mode 100644 web/src/api/admin/permissions.ts diff --git a/web/src/api/admin/permissions.ts b/web/src/api/admin/permissions.ts new file mode 100644 index 0000000..27c7560 --- /dev/null +++ b/web/src/api/admin/permissions.ts @@ -0,0 +1,16 @@ +import type { AppPermission } from "@/types"; +import { axios, handleApiError } from ".."; + +export type FetchPermissionsResponse = AppPermission[]; + +export const getPermissionsApi = + async (): Promise => { + const response = await axios.get( + "/api/v1/admin/permissions", + ); + + if (response.status !== 200 && response.status !== 201) + throw await handleApiError(response); + + return response.data; + }; diff --git a/web/src/pages/Admin/Users/index.tsx b/web/src/pages/Admin/Users/index.tsx index dbb0ffd..14531e2 100644 --- a/web/src/pages/Admin/Users/index.tsx +++ b/web/src/pages/Admin/Users/index.tsx @@ -1,3 +1,4 @@ +import { getPermissionsApi } from "@/api/admin/permissions"; import Breadcrumbs from "@/components/ui/breadcrumbs"; import { Button } from "@/components/ui/button"; import Avatar from "@/feature/Avatar"; @@ -15,6 +16,12 @@ const AdminUsersPage: FC = () => { fetchUsers(); }, [fetchUsers]); + useEffect(() => { + getPermissionsApi().then((res) => { + console.log("permissions response:", res); + }); + }, []); + return (
diff --git a/web/src/types/index.ts b/web/src/types/index.ts index 1ffebc1..7f8aed4 100644 --- a/web/src/types/index.ts +++ b/web/src/types/index.ts @@ -78,3 +78,10 @@ export interface DeviceInfo { browser: string; browser_version: string; } + +export interface AppPermission { + id: string; + name: string; + scope: string; + description: string; +}