From 70a7d6f2caf6685452f0447eed73240a47e0f4fd Mon Sep 17 00:00:00 2001 From: andrea rota Date: Thu, 3 Mar 2022 10:26:24 +0000 Subject: [PATCH] extend getById query Join and select public project metadata (this allows to set the `isPublic` property). --- .../modules/projects/projects-crud.service.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/api/apps/api/src/modules/projects/projects-crud.service.ts b/api/apps/api/src/modules/projects/projects-crud.service.ts index 84fa067ced..6984e4faa6 100644 --- a/api/apps/api/src/modules/projects/projects-crud.service.ts +++ b/api/apps/api/src/modules/projects/projects-crud.service.ts @@ -310,6 +310,20 @@ export class ProjectsCrudService extends AppBaseService< return entity; } + extendGetByIdQuery(query: SelectQueryBuilder, fetchSpecification?: FetchSpecification, info?: ProjectsRequest): SelectQueryBuilder { + /** + * Bring in publicMetadata (if the project has been made public). This is + * used in the `@AfterLoad()` event listener to set the `isPublic` property + * to true for public projects. + */ + query.leftJoinAndSelect( + 'project.publicMetadata', + 'publicMetadata' + ); + + return query; + } + async extendFindAllQuery( query: SelectQueryBuilder, fetchSpecification: FetchSpecification, @@ -325,6 +339,9 @@ export class ProjectsCrudService extends AppBaseService< `${this.alias}.id = acl.project_id`, ); + /** + * @see extendGetByIdQuery() + */ query.leftJoinAndSelect( 'project.publicMetadata', 'publicMetadata'