Get permissions data with queries on initial app load

This commit is contained in:
devanshu052000 2025-05-28 09:56:16 +05:30
parent c2fc4fe60f
commit 5d35806349
3 changed files with 35 additions and 1 deletions

@ -1 +1 @@
Subproject commit f26bc4fc5e9fb9e0986a59b7cca7b84f7950cc08
Subproject commit 525507d4728d55752ad975cf2ddede203fcec740

View file

@ -50,6 +50,25 @@ export class DataQueryRepository extends Repository<DataQuery> {
});
}
getAllWithPermissions(appVersionId: string): Promise<DataQuery[]> {
return dbTransactionWrap((manager: EntityManager) => {
return manager
.createQueryBuilder(DataQuery, 'data_query')
.innerJoinAndSelect('data_query.dataSource', 'data_source')
.leftJoinAndSelect('data_query.plugins', 'plugins')
.leftJoinAndSelect('plugins.iconFile', 'iconFile')
.leftJoinAndSelect('plugins.manifestFile', 'manifestFile')
.leftJoinAndSelect('data_query.permissions', 'permission')
.leftJoinAndSelect('permission.users', 'queryUser')
.leftJoinAndSelect('queryUser.user', 'user')
.leftJoinAndSelect('queryUser.permissionGroup', 'group')
.where('data_source.appVersionId = :appVersionId', { appVersionId })
.where('data_query.app_version_id = :appVersionId', { appVersionId })
.orderBy('data_query.updatedAt', 'DESC')
.getMany();
});
}
async createOne(data: Partial<DataQuery>, manager?: EntityManager): Promise<DataQuery> {
return dbTransactionWrap((manager: EntityManager) => {
const newDataQuery = manager.create(DataQuery, {

View file

@ -107,6 +107,21 @@ export class VersionRepository extends Repository<AppVersion> {
}, manager || this.manager);
}
async findDataQueriesForVersionWithPermissions(appVersionId: string, manager?: EntityManager): Promise<DataQuery[]> {
return dbTransactionWrap((manager: EntityManager) => {
return manager
.createQueryBuilder(DataQuery, 'query')
.where('query.appVersionId = :appVersionId', { appVersionId })
.leftJoinAndSelect('query.dataSource', 'dataSource')
.leftJoinAndSelect('query.permissions', 'permission')
.leftJoinAndSelect('permission.users', 'queryUser')
.leftJoinAndSelect('queryUser.user', 'user')
.leftJoinAndSelect('queryUser.permissionGroup', 'group')
.select(['query', 'dataSource.kind', 'permission', 'queryUser', 'user', 'group'])
.getMany();
}, manager || this.manager);
}
async findVersion(id: string, manager?: EntityManager): Promise<AppVersion> {
return await dbTransactionWrap(async (manager: EntityManager) => {
const appVersion = await manager.findOneOrFail(AppVersion, {