Transform and map user preferences and status
by Jake
JavaScript
function transform(message, context) {
const { payload } = message;
// Ensure payload exists
if (!payload) {
return { header: {}, payload: { status: [], preferences: [] } };
}
// Ensure preferenceStatus is an array before mapping
const rawStatus = Array.isArray(payload.preferenceStatus) ? payload.preferenceStatus : [];
const status = rawStatus.map(item => ({
bannerId: item.xbannerId,
termCode: item.xsybrpstTermCode,
round: item.xsybrpstRoundId,
currentStatus: item.xsybrpstStatus,
id: item.id
}));
// Ensure preferences is an array before mapping
const rawPreferences = Array.isArray(payload.preferences) ? payload.preferences : [];
// Ensure courseOpts dictionary exists in context
const courseOpts = context.courseOpts || {};
const preferences = rawPreferences.map(item => ({
subjectCode: item.xsyrrprfSubjCode,
courseNumber: item.xsyrrprfCrseNumb,
courseTitle: courseOpts[`${item.xsyrrprfSubjCode}-${item.xsyrrprfCrseNumb}`]?.title || \"Missing Title\",
roundId: item.xsyrrprfRoundId,
priority: item.xsyrrprfPriority,
courseSeats: courseOpts[`${item.xsyrrprfSubjCode}-${item.xsyrrprfCrseNumb}`]?.seats || \"Unavailable\",
id: item.id
}));
return {
header: {},
payload: {
status: status,
preferences: preferences
}
};
}