From 855279abd0348506adaa7504804cc5b980e6205a Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 3 Mar 2025 11:12:06 +0100 Subject: [PATCH] fix: make scopesummaries always use master --- server/scopeSummary/queries.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/server/scopeSummary/queries.ts b/server/scopeSummary/queries.ts index 9c59ab311c..c3e862093b 100644 --- a/server/scopeSummary/queries.ts +++ b/server/scopeSummary/queries.ts @@ -28,8 +28,10 @@ const persistScopeSummaryForId = async ( return newScopeSummary.id; }; +type ModelWithScopeSummary = Community | Collection | Pub; + const persistScopeSummaryForModel = async ( - model: any, + model: ModelWithScopeSummary, summary: CreationAttributes, ) => { model.scopeSummaryId = await persistScopeSummaryForId(model.scopeSummaryId, summary); @@ -37,7 +39,7 @@ const persistScopeSummaryForModel = async ( }; export const summarizeCommunity = async (communityId: string) => { - const community = await Community.findOne({ where: { id: communityId } }); + const community = await Community.findOne({ where: { id: communityId }, useMaster: true }); const pubs = await Pub.findAll({ where: { communityId }, @@ -48,20 +50,22 @@ export const summarizeCommunity = async (communityId: string) => { where: { status: { [Op.ne]: 'incomplete' } }, }, ], + useMaster: true, }); - const collections = await Collection.count({ where: { communityId } }); + const collections = await Collection.count({ where: { communityId }, useMaster: true }); const submissions = pubs.filter((pub) => !!pub.submission); const pubsInCommunity = await Pub.findAll({ where: { communityId }, include: 'scopeSummary', + useMaster: true, }); const scopeSummaries = pubsInCommunity .map((pub) => pub.scopeSummary) .filter((x): x is ScopeSummary => !!x); - return persistScopeSummaryForModel(community, { + return persistScopeSummaryForModel(expect(community), { ...addScopeSummaries(...scopeSummaries), pubs: pubs.length, submissions: submissions.length, @@ -74,6 +78,7 @@ export const summarizeCollection = async (collectionId: string) => { await Collection.findOne({ where: { id: collectionId }, include: 'submissionWorkflow', + useMaster: true, }), ) as types.DefinitelyHas; @@ -93,6 +98,7 @@ export const summarizeCollection = async (collectionId: string) => { ], }, ], + useMaster: true, })) as (Omit & { pub: types.DefinitelyHas })[]; const submissions = collectionPubs.filter( @@ -113,10 +119,10 @@ export const summarizeCollection = async (collectionId: string) => { }; export const summarizePub = async (pubId: string, summarizeParentScopes = true) => { - const pub = expect(await Pub.findOne({ where: { id: pubId } })); + const pub = expect(await Pub.findOne({ where: { id: pubId }, useMaster: true })); const [discussions, reviews] = await Promise.all([ - Discussion.count({ where: { pubId } }), - ReviewNew.count({ where: { pubId } }), + Discussion.count({ where: { pubId }, useMaster: true }), + ReviewNew.count({ where: { pubId }, useMaster: true }), ]); await persistScopeSummaryForModel(pub, { discussions, @@ -128,6 +134,7 @@ export const summarizePub = async (pubId: string, summarizeParentScopes = true) if (summarizeParentScopes) { const collectionPubs = await CollectionPub.findAll({ where: { pubId }, + useMaster: true, }); await asyncMap( collectionPubs,