From dcf59226ba7a2722c394118e4f90cd8fc6667ab2 Mon Sep 17 00:00:00 2001 From: sumanvpacewisdom Date: Fri, 27 Feb 2026 13:28:31 +0530 Subject: [PATCH 1/2] Refactor mentees.js to enhance query processing by integrating default checks and validation filters. This update improves error handling for missing tenant codes and streamlines the connection details retrieval logic. --- src/services/mentees.js | 54 ++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/src/services/mentees.js b/src/services/mentees.js index 866d650ab..85e1e72c8 100644 --- a/src/services/mentees.js +++ b/src/services/mentees.js @@ -1525,17 +1525,34 @@ module.exports = class MenteesHelper { const query = utils.processQueryParametersWithExclusions(queryParams) const userExtensionModelName = await menteeQueries.getModelName() + const defaults = await getDefaults() + if (!defaults.tenantCode) + return responses.failureResponse({ + message: 'DEFAULT_ORG_CODE_NOT_SET', + statusCode: httpStatusCode.bad_request, + responseCode: 'CLIENT_ERROR', + }) + + let validationData = await entityTypeCache.getEntityTypesAndEntitiesWithCache( + { + status: common.ACTIVE_STATUS, + model_names: { [Op.overlap]: [userExtensionModelName] }, + }, + tenantCode, + organizationCode, + userExtensionModelName + ) + + let filteredQuery = utils.validateAndBuildFilters(query, validationData) + let connectedMenteeIds = [] let connectedMenteesCount if (queryParams.connected_mentees === 'true') { - const connectedQueryParams = { ...queryParams } - delete connectedQueryParams.connected_mentees - const connectedQuery = utils.processQueryParametersWithExclusions(connectedQueryParams) - + const selectAll = queryParams.select_all === 'true' const connectionDetails = await connectionQueries.getConnectionsDetails( - pageNo, - pageSize, - connectedQuery, + selectAll ? null : pageNo, + selectAll ? null : pageSize, + filteredQuery, searchText, queryParams.mentorId ? queryParams.mentorId : userId, organization_codes, @@ -1547,9 +1564,6 @@ module.exports = class MenteesHelper { pageNo = null pageSize = null connectedMenteeIds = connectionDetails.data.map((item) => item.user_id) - // if (!connectedMenteeIds.includes(userId)) { - // connectedMenteeIds.push(userId) - // } } if (typeof connectionDetails?.count === 'number') { connectedMenteesCount = connectionDetails.count @@ -1568,26 +1582,6 @@ module.exports = class MenteesHelper { } } - const defaults = await getDefaults() - if (!defaults.tenantCode) - return responses.failureResponse({ - message: 'DEFAULT_ORG_CODE_NOT_SET', - statusCode: httpStatusCode.bad_request, - responseCode: 'CLIENT_ERROR', - }) - - let validationData = await entityTypeCache.getEntityTypesAndEntitiesWithCache( - { - status: common.ACTIVE_STATUS, - model_names: { [Op.overlap]: [userExtensionModelName] }, - }, - tenantCode, - organizationCode, - userExtensionModelName - ) - - let filteredQuery = utils.validateAndBuildFilters(query, validationData) - const emailIds = [] const searchTextArray = searchText ? searchText.split(',') : [] From 869b1184d58ebc1bd8ca1a25611a70421b210aa9 Mon Sep 17 00:00:00 2001 From: sumanvpacewisdom Date: Fri, 27 Feb 2026 13:31:19 +0530 Subject: [PATCH 2/2] Update userExtension.js to modify default pagination behavior, allowing for the return of all provided IDs when pagination is not specified. This change enhances flexibility in query results and improves handling of large datasets. --- src/database/queries/userExtension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/database/queries/userExtension.js b/src/database/queries/userExtension.js index 27c5f52ea..7317bb69f 100644 --- a/src/database/queries/userExtension.js +++ b/src/database/queries/userExtension.js @@ -570,9 +570,9 @@ module.exports = class MenteeExtensionQueries { replacements.offset = limit * (page - 1) replacements.limit = limit } else { - // Provide defaults if page/limit not specified + // No pagination: return all provided IDs (e.g. select_all=true flow) replacements.offset = 0 - replacements.limit = 5 // Default limit + replacements.limit = ids.length > 0 ? ids.length : 5000 } let results = await Sequelize.query(query, {