Skip to content

Commit ee70bb8

Browse files
committed
readd loadCauseProjects
1 parent 7ec7250 commit ee70bb8

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/entities/project.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,11 @@ export class Project extends BaseEntity {
580580
}
581581
}
582582

583+
@Field(_type => [CauseProject], { nullable: true })
584+
async loadCauseProjects(): Promise<CauseProject[] | []> {
585+
return [];
586+
}
587+
583588
@BeforeUpdate()
584589
async updateProjectDescriptionSummary() {
585590
await Project.update(
@@ -817,6 +822,46 @@ export class Cause extends Project {
817822
@Column({ default: 'cause' })
818823
projectType: string = 'cause';
819824

825+
@Field(_type => [CauseProject], { nullable: true })
826+
async loadCauseProjects(): Promise<CauseProject[] | []> {
827+
if (this.projectType.toLowerCase() === 'project') {
828+
return [];
829+
}
830+
831+
const causeProjects = await CauseProject.createQueryBuilder('causeProject')
832+
.leftJoinAndSelect('causeProject.project', 'project')
833+
.leftJoinAndSelect('project.status', 'status')
834+
.leftJoinAndSelect('project.addresses', 'addresses')
835+
.leftJoinAndSelect(
836+
'project.socialProfiles',
837+
'socialProfiles',
838+
'socialProfiles.projectId = project.id',
839+
)
840+
.leftJoinAndSelect(
841+
'project.socialMedia',
842+
'socialMedia',
843+
'socialMedia.projectId = project.id',
844+
)
845+
.leftJoinAndSelect('project.anchorContracts', 'anchor_contract_address')
846+
.leftJoinAndSelect('project.projectPower', 'projectPower')
847+
.leftJoinAndSelect('project.projectInstantPower', 'projectInstantPower')
848+
.leftJoinAndSelect('project.projectFuturePower', 'projectFuturePower')
849+
.leftJoinAndSelect('project.projectUpdates', 'projectUpdates')
850+
.leftJoinAndSelect(
851+
'project.categories',
852+
'categories',
853+
'categories.isActive = :isActive',
854+
{ isActive: true },
855+
)
856+
.leftJoinAndSelect('categories.mainCategory', 'mainCategory')
857+
.leftJoinAndSelect('project.organization', 'organization')
858+
.leftJoinAndSelect('project.qfRounds', 'qfRounds')
859+
.leftJoin('project.adminUser', 'user')
860+
.where('causeProject.causeId = :causeId', { causeId: this.id })
861+
.getMany();
862+
return causeProjects;
863+
}
864+
820865
// Virtual field to get projects directly
821866
@Field(_type => [Project], { nullable: true })
822867
async projects(): Promise<Project[] | []> {

0 commit comments

Comments
 (0)