diff --git a/src/controllers/00-keycloak-controller.ts b/src/controllers/00-keycloak-controller.ts index e17331f..1d5d9b9 100644 --- a/src/controllers/00-keycloak-controller.ts +++ b/src/controllers/00-keycloak-controller.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Delete, Get, Path, Post, Route, Security, Tags } from "tsoa"; +import { Body, Controller, Delete, Get, Path, Post, Query, Route, Security, Tags } from "tsoa"; import { addUserRoles, getGroup, listRole, removeUserRoles } from "../services/keycloak"; @Route("api/v1/keycloak") @@ -46,8 +46,9 @@ export class KeycloakController extends Controller { } @Get("group") - async getGroup() { - const group = await getGroup(); + async getGroup(@Query() query: string = "") { + const querySearch = query === "" ? "q" : `search=${query}`; + const group = await getGroup(querySearch); if (!Array.isArray(group)) throw new Error("Failed. Cannot get group(s) data from the server."); return group; diff --git a/src/services/keycloak.ts b/src/services/keycloak.ts index 3875b18..5352b2c 100644 --- a/src/services/keycloak.ts +++ b/src/services/keycloak.ts @@ -346,8 +346,8 @@ export async function removeUserRoles(userId: string, roles: { id: string; name: return true; } -export async function getGroup() { - const res = await fetch(`${KC_URL}/admin/realms/${KC_REALM}/groups?q`, { +export async function getGroup(query: string) { + const res = await fetch(`${KC_URL}/admin/realms/${KC_REALM}/groups?${query}`, { headers: { authorization: `Bearer ${await getToken()}`, "content-type": `application/json`,