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; +}