Untitled
unknown
plain_text
12 days ago
9.0 kB
4
Indexable
export const rbacController = s.router(contract.v1.procurementRbac.buyer, { organizations: { getAllOrganizations: { handler: async ({ query, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.getAllOrganizations({ session, page: query.page, perPage: query.limit, search: query.keyword, }); return { status: 200, body: { message: 'Organizations fetched successfully', data: result.items, meta: { current_page: result.meta.page, per_page: result.meta.perPage, last_page: result.meta.totalPages, total: result.meta.totalItems, } } } } }, getOrganizationById: { handler: async ({ params, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.getOrganizationById({ orgId: params.organizationId, session }); return { status: 200, body: { message: 'Organization fetched successfully', data: result } } } }, createOrganization: { handler: async ({ body, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.createOrganization({ body, session }); return { status: 200, body: { message: 'Organization created successfully', data: result } } } }, updateOrganizationById: { handler: async ({ params, body, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.updateOrganizationById({ orgId: params.organizationId, body, session }); return { status: 200, body: { message: 'Organization updated successfully', data: result } } } }, deleteOrganizationById: { handler: async ({ params, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.deleteOrganizationById({ orgId: params.organizationId, session }); return { status: 200, body: { message: 'Organization deleted successfully', data: result } } } }, }, teams: { getAllTeams: { handler: async ({ params, query, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.getAllTeams({ orgId: params.organizationId, session, page: query.page, perPage: query.limit, search: query.keyword, }); return { status: 200, body: { message: 'Teams fetched successfully', data: result.items.map((item) => ({ ...item, members: item.members.map((member) => ({ ...member, email: member.email ?? '', })) })), meta: { current_page: result.meta.page, per_page: result.meta.perPage, last_page: result.meta.totalPages, total: result.meta.totalItems, } } } } }, getTeamById: { handler: async ({ params, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.getTeamById({ teamId: params.teamId, session }); return { status: 200, body: { message: 'Team fetched successfully', data: result } } } }, createTeam: { handler: async ({ params, body, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.createTeam({ orgId: params.organizationId, body, session }); return { status: 200, body: { message: 'Team created successfully', data: result } } } }, updateTeamById: { handler: async ({ params, body, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.updateTeamById({ teamId: params.teamId, body, session }); return { status: 200, body: { message: 'Team updated successfully', data: result } } } }, deleteTeamById: { handler: async ({ params, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.deleteTeamById({ teamId: params.teamId, session }); return { status: 200, body: { message: 'Team deleted successfully', data: result } } } }, }, teamMembers: { getAllTeamMembers: { handler: async ({ params, query, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.getAllTeamMembers({ teamId: params.teamId, session, page: query.page, perPage: query.limit, search: query.keyword, }); return { status: 200, body: { message: 'Team members fetched successfully', data: result.items, meta: { current_page: result.meta.page, per_page: result.meta.perPage, last_page: result.meta.totalPages, total: result.meta.totalItems, } } } } }, createTeamMember: { handler: async ({ params, body, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.createTeamMember({ teamId: params.teamId, body, session }); return { status: 200, body: { message: 'Team member created successfully', data: result } } } }, updateTeamMemberById: { handler: async ({ params, body, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.updateTeamMemberById({ teamMemberId: params.teamMemberId, body, session }); return { status: 200, body: { message: 'Team member updated successfully', data: result } } } }, deleteTeamMemberById: { handler: async ({ params, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.deleteTeamMemberById({ teamMemberId: params.teamMemberId, session }); return { status: 200, body: { message: 'Team member deleted successfully', data: result } } } }, getTeamMemberById: { handler: async ({ params, request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.getTeamMemberById({ teamMemberId: params.teamMemberId, session }); return { status: 200, body: { message: 'Team member fetched successfully', data: result } } } }, getUserByEmail: { handler: async ({ body, request }) => { const result = await RbacService.getUserByEmail({ email: body.email, }); if (!result) { return { status: 204, body: { message: 'User not found', data: null } } } return { status: 200, body: { message: 'User fetched successfully', data: result } } } }, getUserProcurementRoleInfo: { handler: async ({ request }) => { const session = request.requestContext.get('session')!; const result = await RbacService.getUserProcurementRoleInfo({ userId: session.user?.id ?? '', }); return { status: 200, body: { message: 'User procurement role info fetched successfully', data: result } } } } } })
Editor is loading...
Leave a Comment