Merge branch 'mayankSprint2' of http://git.wdipl.com/Mayank.Mishra/MinglarBackendNestJS into paritosh-main1
This commit is contained in:
@@ -533,6 +533,9 @@ export class HostService {
|
||||
id: true,
|
||||
logoPath: true,
|
||||
companyName: true,
|
||||
firstName: true,
|
||||
lastName: true,
|
||||
mobileNumber: true,
|
||||
address1: true,
|
||||
address2: true,
|
||||
cities: {
|
||||
|
||||
@@ -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.`,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2948,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) {
|
||||
@@ -2973,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) {
|
||||
@@ -3035,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'}.`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user