diff --git a/packages/api/src/resolvers/function_resolvers.ts b/packages/api/src/resolvers/function_resolvers.ts index f669a5909..20fb682b6 100644 --- a/packages/api/src/resolvers/function_resolvers.ts +++ b/packages/api/src/resolvers/function_resolvers.ts @@ -505,13 +505,20 @@ export const functionResolvers = { return findLabelsByLibraryItemId(item.id, ctx.uid) }, - async recommendations(item: { - id: string - recommendations?: Recommendation[] - }) { + async recommendations( + item: { + id: string + recommendations?: Recommendation[] + }, + _: unknown, + ctx: WithDataSourcesContext + ) { if (item.recommendations) return item.recommendations - const recommendations = await findRecommendationsByLibraryItemId(item.id) + const recommendations = await findRecommendationsByLibraryItemId( + item.id, + ctx.uid + ) return recommendations.map(recommandationDataToRecommendation) }, }, diff --git a/packages/api/src/services/recommendation.ts b/packages/api/src/services/recommendation.ts index c35a0c7aa..e435b96bf 100644 --- a/packages/api/src/services/recommendation.ts +++ b/packages/api/src/services/recommendation.ts @@ -2,7 +2,7 @@ import { nanoid } from 'nanoid' import { DeepPartial } from 'typeorm' import { LibraryItem } from '../entity/library_item' import { Recommendation } from '../entity/recommendation' -import { authTrx, getRepository } from '../repository' +import { authTrx } from '../repository' import { logger } from '../utils/logger' import { createHighlights } from './highlights' import { createLibraryItem, findLibraryItemByUrl } from './library_item' @@ -89,13 +89,19 @@ export const createRecommendation = async ( } export const findRecommendationsByLibraryItemId = async ( - libraryItemId: string + libraryItemId: string, + userId: string ) => { - return getRepository(Recommendation).find({ - where: { libraryItem: { id: libraryItemId } }, - relations: { - group: true, - recommender: true, - }, - }) + return authTrx( + async (tx) => + tx.getRepository(Recommendation).find({ + where: { libraryItem: { id: libraryItemId } }, + relations: { + group: true, + recommender: true, + }, + }), + undefined, + userId + ) }