From 25b82bee319953f73cca5370f5cb7f9d3d05ec9d Mon Sep 17 00:00:00 2001 From: Mayank Mishra Date: Mon, 13 Apr 2026 15:33:27 +0530 Subject: [PATCH 1/3] sending precise error message --- .../user/services/itinerary.service.ts | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/modules/user/services/itinerary.service.ts b/src/modules/user/services/itinerary.service.ts index 5f609d3..920e692 100644 --- a/src/modules/user/services/itinerary.service.ts +++ b/src/modules/user/services/itinerary.service.ts @@ -2880,18 +2880,28 @@ export class ItineraryService { if (!itineraryActivity) { throw new ApiError( 404, - `Itinerary activity not found for item ${index}.`, + `activities[${index}] with itineraryActivityXid=${item.itineraryActivityXid} was not found.`, ); } - if ( - itineraryActivity.itineraryType !== 'ACTIVITY' || - !itineraryActivity.activityXid || - !itineraryActivity.activity - ) { + if (itineraryActivity.itineraryType !== 'ACTIVITY') { throw new ApiError( 400, - 'Selections can only be stored for itinerary items linked to an activity.', + `activities[${index}] with itineraryActivityXid=${item.itineraryActivityXid} is not an ACTIVITY row. Actual itineraryType=${itineraryActivity.itineraryType}.`, + ); + } + + if (!itineraryActivity.activityXid) { + throw new ApiError( + 400, + `activities[${index}] with itineraryActivityXid=${item.itineraryActivityXid} is missing activityXid.`, + ); + } + + if (!itineraryActivity.activity) { + throw new ApiError( + 400, + `activities[${index}] with itineraryActivityXid=${item.itineraryActivityXid} could not load linked activity details.`, ); } From 94454a6f25604c0c8f91ffc1323f366902ff3e2d Mon Sep 17 00:00:00 2001 From: Mayank Mishra Date: Mon, 13 Apr 2026 15:55:40 +0530 Subject: [PATCH 2/3] sending the precise error --- .../user/services/itinerary.service.ts | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/modules/user/services/itinerary.service.ts b/src/modules/user/services/itinerary.service.ts index 920e692..f4ecae8 100644 --- a/src/modules/user/services/itinerary.service.ts +++ b/src/modules/user/services/itinerary.service.ts @@ -2958,14 +2958,22 @@ export class ItineraryService { ); } + const availableFoodTypes = itineraryActivity.activity.activityFoodTypes.map((entry) => ({ + id: entry.id, + name: entry.foodType.foodTypeName, + })); const availableFoodTypeIds = new Set( - itineraryActivity.activity.activityFoodTypes.map((entry) => entry.id), + availableFoodTypes.map((entry) => entry.id), ); const availableNavigationModeIds = new Set( itineraryActivity.activity.ActivityNavigationModes.map((entry) => entry.id), ); + const availableEquipments = itineraryActivity.activity.ActivityEquipments.map((entry) => ({ + id: entry.id, + name: entry.equipmentName, + })); const availableEquipmentIds = new Set( - itineraryActivity.activity.ActivityEquipments.map((entry) => entry.id), + availableEquipments.map((entry) => entry.id), ); if (isFoodOpted) { @@ -2983,10 +2991,14 @@ export class ItineraryService { ); } - if (selectedFoodTypeIds.some((id) => !availableFoodTypeIds.has(id))) { + const invalidFoodTypeIds = selectedFoodTypeIds.filter( + (id) => !availableFoodTypeIds.has(id), + ); + + if (invalidFoodTypeIds.length) { throw new ApiError( 400, - `activities[${index}]: One or more selected food types do not belong to this activity.`, + `activities[${index}] with itineraryActivityXid=${item.itineraryActivityXid} has invalid selectedFoodTypeIds=${invalidFoodTypeIds.join(', ')}. Allowed food types for this activity are: ${availableFoodTypes.length ? availableFoodTypes.map((entry) => `${entry.id}:${entry.name}`).join(', ') : 'none'}.`, ); } } else if (selectedFoodTypeIds.length) { @@ -3045,10 +3057,14 @@ export class ItineraryService { ); } - if (selectedEquipmentIds.some((id) => !availableEquipmentIds.has(id))) { + const invalidEquipmentIds = selectedEquipmentIds.filter( + (id) => !availableEquipmentIds.has(id), + ); + + if (invalidEquipmentIds.length) { throw new ApiError( 400, - `activities[${index}]: One or more selected equipments do not belong to this activity.`, + `activities[${index}] with itineraryActivityXid=${item.itineraryActivityXid} has invalid selectedEquipmentIds=${invalidEquipmentIds.join(', ')}. Allowed equipments for this activity are: ${availableEquipments.length ? availableEquipments.map((entry) => `${entry.id}:${entry.name}`).join(', ') : 'none'}.`, ); } } From 9e8d9502ae2edc2a2a50363ba53f3e7a24ad8dd7 Mon Sep 17 00:00:00 2001 From: Mayank Mishra Date: Mon, 13 Apr 2026 16:06:32 +0530 Subject: [PATCH 3/3] sending the host parent company contact info --- src/modules/host/services/host.service.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/host/services/host.service.ts b/src/modules/host/services/host.service.ts index 9c8b9e3..a511f36 100644 --- a/src/modules/host/services/host.service.ts +++ b/src/modules/host/services/host.service.ts @@ -533,6 +533,9 @@ export class HostService { id: true, logoPath: true, companyName: true, + firstName: true, + lastName: true, + mobileNumber: true, address1: true, address2: true, cities: {