From 6c10b1918996e46158ae971bdaf435e5eb953c3e Mon Sep 17 00:00:00 2001 From: Henri Remonen Date: Mon, 13 May 2024 12:30:02 +0300 Subject: [PATCH] feat: update the course unit logic --- .../updateCoursesAndTeacherFeedbackTargets.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/updater/updateCoursesAndTeacherFeedbackTargets/updateCoursesAndTeacherFeedbackTargets.js b/src/updater/updateCoursesAndTeacherFeedbackTargets/updateCoursesAndTeacherFeedbackTargets.js index debed5c..2b84edf 100644 --- a/src/updater/updateCoursesAndTeacherFeedbackTargets/updateCoursesAndTeacherFeedbackTargets.js +++ b/src/updater/updateCoursesAndTeacherFeedbackTargets/updateCoursesAndTeacherFeedbackTargets.js @@ -116,6 +116,15 @@ const getIncludeCurs = async () => { const getCourseUnit = ({ activityPeriod, courseUnits, name }) => { const { startDate: realisationStartDate } = activityPeriod + const latestCourseUnit = courseUnits.sort((a, b) => { + const { startDate: aStartDate } = a.validityPeriod + const { startDate: bStartDate } = b.validityPeriod + + if (!aStartDate || !bStartDate) return 0 + + return dateFns.isAfter(new Date(aStartDate), new Date(bStartDate)) ? -1 : 1 + })[0] + const scientificallyAccurateCUs = courseUnits.map((courseUnit) => { const getSimilarityRanking = (language) => stringSimilarity(name[language] ?? '', courseUnit.name[language] ?? '') @@ -143,7 +152,8 @@ const getCourseUnit = ({ activityPeriod, courseUnits, name }) => { return dateFns.isAfter(new Date(realisationStartDate), new Date(startDate)) }) ?? sortedCourseUnits[0] - return courseUnit + + return latestCourseUnit.code === courseUnit.code ? latestCourseUnit : courseUnit } const getResponsibilityInfos = (_courseUnit, courseRealisation) => {