From 06a7e804ebfd42794be4e8066b384e2f396e161b Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 13 Jun 2025 17:26:36 +0800 Subject: [PATCH] misc: add custom role slug in fetch group --- backend/src/ee/routes/v1/group-router.ts | 4 +++- backend/src/ee/services/group/group-dal.ts | 20 +++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/backend/src/ee/routes/v1/group-router.ts b/backend/src/ee/routes/v1/group-router.ts index d10e1800b..ec235d34e 100644 --- a/backend/src/ee/routes/v1/group-router.ts +++ b/backend/src/ee/routes/v1/group-router.ts @@ -48,7 +48,9 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => { id: z.string().trim().describe(GROUPS.GET_BY_ID.id) }), response: { - 200: GroupsSchema + 200: GroupsSchema.extend({ + customRoleSlug: z.string().nullable() + }) } }, handler: async (req) => { diff --git a/backend/src/ee/services/group/group-dal.ts b/backend/src/ee/services/group/group-dal.ts index 801f52fc0..708fbdbd3 100644 --- a/backend/src/ee/services/group/group-dal.ts +++ b/backend/src/ee/services/group/group-dal.ts @@ -169,11 +169,29 @@ export const groupDALFactory = (db: TDbClient) => { } }; + const findById = async (id: string, tx?: Knex) => { + try { + const doc = await (tx || db.replicaNode())(TableName.Groups) + .leftJoin(TableName.OrgRoles, `${TableName.Groups}.roleId`, `${TableName.OrgRoles}.id`) + .where(`${TableName.Groups}.id`, id) + .select( + selectAllTableCols(TableName.Groups), + db.ref("slug").as("customRoleSlug").withSchema(TableName.OrgRoles) + ) + .first(); + + return doc; + } catch (error) { + throw new DatabaseError({ error, name: "Find by id" }); + } + }; + return { + ...groupOrm, findGroups, findByOrgId, findAllGroupPossibleMembers, findGroupsByProjectId, - ...groupOrm + findById }; };