Added API to get users for an app with view access

This commit is contained in:
devanshu052000 2025-04-17 00:41:49 +05:30
parent 45d38b3f6e
commit 4b4cae5b83
6 changed files with 28 additions and 5 deletions

View file

@ -1,3 +1,5 @@
import { User } from '@entities/user.entity';
export interface IAppPermissionsService {
fetchUsers(appId: string): Promise<any>;
fetchUsers(appId: string, user: User): Promise<any>;
}

View file

@ -0,0 +1,5 @@
import { User } from '@entities/user.entity';
export interface IUtilService {
getUsersWithViewAccess(appId: string, organizationId: string, endUserIds: string[]): Promise<User[]>;
}

View file

@ -1,19 +1,23 @@
import { getImportPath } from '@modules/app/constants';
import { DynamicModule } from '@nestjs/common';
import { FeatureAbilityFactory } from './ability';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from '@entities/user.entity';
import { RolesRepository } from '@modules/roles/repository';
export class AppPermissionsModule {
static async register(configs: { IS_GET_CONTEXT: boolean }): Promise<DynamicModule> {
const importPath = await getImportPath(configs.IS_GET_CONTEXT);
const { AppPermissionsController } = await import(`${importPath}/app-permissions/controller`);
const { AppPermissionsService } = await import(`${importPath}/app-permissions/service`);
const { AppPermissionsUtilService } = await import(`${importPath}/app-permissions/util.service`);
return {
module: AppPermissionsModule,
imports: [],
imports: [TypeOrmModule.forFeature([User])],
controllers: [AppPermissionsController],
providers: [AppPermissionsService, FeatureAbilityFactory],
exports: [],
providers: [AppPermissionsService, AppPermissionsUtilService, RolesRepository, FeatureAbilityFactory],
exports: [AppPermissionsUtilService],
};
}
}

View file

@ -5,7 +5,7 @@ import { IAppPermissionsService } from './interfaces/IService';
export class AppPermissionsService implements IAppPermissionsService {
constructor() {}
async fetchUsers(appId) {
async fetchUsers(appId, user) {
throw new Error('Method not implemented.');
}
}

View file

@ -0,0 +1,12 @@
import { User } from '@entities/user.entity';
import { IUtilService } from './interfaces/IUtilService';
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppPermissionsUtilService implements IUtilService {
constructor() {}
async getUsersWithViewAccess(appId: string, organizationId: string, endUserIds: string[]): Promise<User[]> {
throw new Error('Method not implemented.');
}
}