From e89c1ea77cd16cce8cc00c3b9a4fb72dcf42adbf Mon Sep 17 00:00:00 2001 From: Cherik Date: Mon, 9 Dec 2024 15:28:43 +0330 Subject: [PATCH 1/2] add includeUnlisted to FilterProjectQueryInputParams --- src/resolvers/projectResolver.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/resolvers/projectResolver.ts b/src/resolvers/projectResolver.ts index e9740260d..051683924 100644 --- a/src/resolvers/projectResolver.ts +++ b/src/resolvers/projectResolver.ts @@ -268,6 +268,9 @@ class GetProjectsArgs { @Field(_type => String, { nullable: true }) qfRoundSlug?: string; + + @Field({ nullable: true }) + includeUnlisted?: boolean; } @ObjectType() @@ -740,6 +743,7 @@ export class ProjectResolver { campaignSlug, qfRoundId, qfRoundSlug, + includeUnlisted, }: GetProjectsArgs, @Ctx() { req: { user }, projectsFiltersThreadPool }: ApolloContext, ): Promise { @@ -766,6 +770,7 @@ export class ProjectResolver { qfRoundId, qfRoundSlug, activeQfRoundId, + includeUnlisted, }; let campaign; if (campaignSlug) { From 92f15c9bb41440a8367d5a9f1f3b682e9b4ffd6e Mon Sep 17 00:00:00 2001 From: Cherik Date: Mon, 9 Dec 2024 15:29:02 +0330 Subject: [PATCH 2/2] return proper projects --- src/repositories/projectRepository.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/repositories/projectRepository.ts b/src/repositories/projectRepository.ts index d500b41bb..91dec1ff0 100644 --- a/src/repositories/projectRepository.ts +++ b/src/repositories/projectRepository.ts @@ -83,6 +83,7 @@ export type FilterProjectQueryInputParams = { qfRoundId?: number; activeQfRoundId?: number; qfRoundSlug?: string; + includeUnlisted?: boolean; }; export const filterProjectsQuery = (params: FilterProjectQueryInputParams) => { const { @@ -97,6 +98,7 @@ export const filterProjectsQuery = (params: FilterProjectQueryInputParams) => { qfRoundId, qfRoundSlug, activeQfRoundId, + includeUnlisted, } = params; let query = Project.createQueryBuilder('project') @@ -122,11 +124,16 @@ export const filterProjectsQuery = (params: FilterProjectQueryInputParams) => { 'projectPower.totalPower', 'projectPower.powerRank', 'projectPower.round', - ]) - .where( + ]); + + if (includeUnlisted) { + query = query.where(`project.statusId = ${ProjStatus.active}`); + } else { + query = query.where( `project.statusId = ${ProjStatus.active} AND project.reviewStatus = :reviewStatus`, { reviewStatus: ReviewStatus.Listed }, ); + } const isFilterByQF = !!filters?.find(f => f === FilterField.ActiveQfRound) && activeQfRoundId; @@ -255,7 +262,6 @@ export const filterProjectsQuery = (params: FilterProjectQueryInputParams) => { break; case SortingField.BestMatch: break; - default: query .addOrderBy('projectInstantPower.totalPower', OrderDirection.DESC)