From d8475de70fad71b692d1d0bee64b52e202b4aa6f Mon Sep 17 00:00:00 2001 From: Mayank Mishra Date: Thu, 19 Feb 2026 17:52:43 +0530 Subject: [PATCH] taking array of schoolCompanyXids --- .../getActivityFromConnectionsInterest.ts | 17 +++++++++++++---- src/modules/user/services/user.service.ts | 12 +++++++----- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/modules/user/handlers/connections/getActivityFromConnectionsInterest.ts b/src/modules/user/handlers/connections/getActivityFromConnectionsInterest.ts index a813111..c444c1d 100644 --- a/src/modules/user/handlers/connections/getActivityFromConnectionsInterest.ts +++ b/src/modules/user/handlers/connections/getActivityFromConnectionsInterest.ts @@ -25,20 +25,29 @@ export const handler = safeHandler(async ( throw new ApiError(400, 'Invalid user'); } - const schoolCompanyXid = Number(event.queryStringParameters?.schoolCompanyXid); const page = Number(event.queryStringParameters?.page ?? 1); const limit = Number(event.queryStringParameters?.limit ?? 20); const countryName = event.queryStringParameters?.countryName ?? ''; const stateName = event.queryStringParameters?.stateName ?? ''; const cityName = event.queryStringParameters?.cityName ?? ''; + const schoolCompanyXidsParam = event.queryStringParameters?.schoolCompanyXids; - if (!schoolCompanyXid) { - throw new ApiError(400, 'schoolCompanyXid is required'); + if (!schoolCompanyXidsParam) { + throw new ApiError(400, 'schoolCompanyXids is required'); + } + + const schoolCompanyXids = schoolCompanyXidsParam + .split(',') + .map(id => Number(id)) + .filter(id => !isNaN(id)); + + if (!schoolCompanyXids.length) { + throw new ApiError(400, 'Invalid schoolCompanyXids'); } const result = await userService.getAllActivitiesFromConnectionsUserInterests( userId, - schoolCompanyXid, + schoolCompanyXids, page, limit, countryName, diff --git a/src/modules/user/services/user.service.ts b/src/modules/user/services/user.service.ts index ea1cbd1..26499fd 100644 --- a/src/modules/user/services/user.service.ts +++ b/src/modules/user/services/user.service.ts @@ -1997,7 +1997,7 @@ export class UserService { async getAllActivitiesFromConnectionsUserInterests( userId: number, - schoolCompanyXid: number, + schoolCompanyXids: number[], page: number, limit: number, countryName: string, @@ -2010,7 +2010,7 @@ export class UserService { where: { isActive: true, schoolCompanyXid: { - in: [schoolCompanyXid], + in: schoolCompanyXids, }, userXid: { not: userId, @@ -2031,9 +2031,11 @@ export class UserService { }; } + const networkUserIds = [...new Set(networkUsers.map(u => u.userXid))]; + const networkUserInterests = await tx.userInterests.findMany({ where: { - userXid: { in: networkUsers.map(u => u.userXid) }, + userXid: { in: networkUserIds }, isActive: true, }, distinct: ['interestXid'], @@ -2346,7 +2348,7 @@ export class UserService { isActive: true, activityInternalStatus: ACTIVITY_INTERNAL_STATUS.ACTIVITY_LISTED, amInternalStatus: ACTIVITY_AM_INTERNAL_STATUS.ACTIVITY_LISTED, - activityTypeXid: { in: activityTypes.map(a => a.id) }, + activityTypeXid: { in: activityTypeIds }, }; if (effectiveCountryXid) { @@ -2366,7 +2368,7 @@ export class UserService { isActive: true, activityInternalStatus: ACTIVITY_INTERNAL_STATUS.ACTIVITY_LISTED, amInternalStatus: ACTIVITY_AM_INTERNAL_STATUS.ACTIVITY_LISTED, - activityTypeXid: { in: activityTypes.map(a => a.id) }, + activityTypeXid: { in: activityTypeIds }, }; if (effectiveCountryXid) {