@kth/om-kursen-ladok-client 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/createApiClient.js +102 -16
- package/dist/createApiClient.js.map +1 -1
- package/dist/mapCourse.d.ts +2 -2
- package/dist/mapCourse.js.map +1 -1
- package/dist/mapCourseInstans.d.ts +3 -3
- package/dist/mapCourseInstans.js +3 -3
- package/dist/mapCourseInstans.js.map +1 -1
- package/dist/mapCourseRound.d.ts +2 -2
- package/dist/mapCourseRound.js.map +1 -1
- package/dist/mapExaminationModule.d.ts +2 -2
- package/dist/mapExaminationModule.js.map +1 -1
- package/dist/mapProgramInstans.d.ts +26 -0
- package/dist/mapProgramInstans.js +72 -0
- package/dist/mapProgramInstans.js.map +1 -0
- package/dist/mapProgramTerm.d.ts +10 -0
- package/dist/mapProgramTerm.js +15 -0
- package/dist/mapProgramTerm.js.map +1 -0
- package/dist/mapProgramTillfalle.d.ts +2 -2
- package/dist/mapProgramTillfalle.js.map +1 -1
- package/dist/mapSearchResult.d.ts +2 -2
- package/dist/mapSearchResult.js +2 -2
- package/dist/mapSearchResult.js.map +1 -1
- package/dist/mapStructureCourses.d.ts +7 -4
- package/dist/mapStructureCourses.js +5 -3
- package/dist/mapStructureCourses.js.map +1 -1
- package/dist/mapUtbildningsplan.d.ts +2 -2
- package/dist/mapUtbildningsplan.js +14 -5
- package/dist/mapUtbildningsplan.js.map +1 -1
- package/dist/types/OmKursenLadokApiClient.d.ts +8 -1
- package/dist/utils/courseSyllabusUtil.d.ts +2 -2
- package/dist/utils/courseSyllabusUtil.js.map +1 -1
- package/dist/utils/examinationModulesUtil.d.ts +2 -12
- package/dist/utils/examinationModulesUtil.js +3 -1
- package/dist/utils/examinationModulesUtil.js.map +1 -1
- package/dist/utils/periodUtil.d.ts +3 -0
- package/dist/utils/periodUtil.js +26 -1
- package/dist/utils/periodUtil.js.map +1 -1
- package/dist/utils/programStrukturUtil.d.ts +59 -48
- package/dist/utils/programStrukturUtil.js +109 -97
- package/dist/utils/programStrukturUtil.js.map +1 -1
- package/dist/utils/studyYearUtil.d.ts +3 -1
- package/dist/utils/studyYearUtil.js +14 -7
- package/dist/utils/studyYearUtil.js.map +1 -1
- package/package.json +5 -3
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.fetchProgramStructure = exports.
|
|
12
|
+
exports.fetchProgramStructure = exports.fetchAndCategorizeStructureParts = exports.fetchStructurePartsVersions = exports.fetchStructurePartInstances = exports.fetchStructureByInstansUid = exports.fetchStructureByTillfalleUid = exports.handleError = void 0;
|
|
13
13
|
const mapStructureCourses_1 = require("../mapStructureCourses");
|
|
14
14
|
const mapCourseInstans_1 = require("../mapCourseInstans");
|
|
15
15
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
@@ -41,15 +41,17 @@ const fetchStructureByInstansUid = (uid, ladokClient) => __awaiter(void 0, void
|
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
exports.fetchStructureByInstansUid = fetchStructureByInstansUid;
|
|
44
|
-
const
|
|
44
|
+
const fetchStructurePartInstances = (utbildningstillfalleUIDn, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
45
|
try {
|
|
46
|
-
const moduler = yield Promise.all(
|
|
46
|
+
const moduler = yield Promise.all(utbildningstillfalleUIDn.map((utbildningstillfalleUID) => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
47
|
try {
|
|
48
|
-
const utbildningsinstans = yield ladokClient.
|
|
48
|
+
const utbildningsinstans = yield ladokClient.utbildningstillfalleSlim(utbildningstillfalleUID, {
|
|
49
|
+
attributVarden: 'utbildningsinstans.uid,utbildning.attribut.utbildningstillfalleskod,utbildningstyp,utbildning.attribut.startperiod,status',
|
|
50
|
+
});
|
|
49
51
|
return utbildningsinstans.data;
|
|
50
52
|
}
|
|
51
53
|
catch (error) {
|
|
52
|
-
throw (0, exports.handleError)(`Error fetching module for utbildningsbasUID ${
|
|
54
|
+
throw (0, exports.handleError)(`Error fetching module for utbildningsbasUID ${utbildningstillfalleUIDn}:`, error);
|
|
53
55
|
}
|
|
54
56
|
})));
|
|
55
57
|
return moduler.filter(module => module !== null);
|
|
@@ -58,12 +60,14 @@ const fetchCourseBoxes = (utbildningsbasUIDn, ladokClient) => __awaiter(void 0,
|
|
|
58
60
|
throw (0, exports.handleError)('Failed to fetch modules', error);
|
|
59
61
|
}
|
|
60
62
|
});
|
|
61
|
-
exports.
|
|
62
|
-
const
|
|
63
|
+
exports.fetchStructurePartInstances = fetchStructurePartInstances;
|
|
64
|
+
const fetchStructurePartsVersions = (utbildningsinstansUIDn, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
65
|
try {
|
|
64
66
|
const moduler = yield Promise.all(utbildningsinstansUIDn.map((utbildningsinstansUID) => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
67
|
try {
|
|
66
|
-
const utbildningsinstans = yield ladokClient.
|
|
68
|
+
const utbildningsinstans = yield ladokClient.utbildningsinstansSlim(utbildningsinstansUID, {
|
|
69
|
+
attributVarden: 'utbildning.attribut.svensk.benamning,utbildning.attribut.engelsk.benamning,utbildning.attribut.kod,utbildningstyp',
|
|
70
|
+
});
|
|
67
71
|
return utbildningsinstans.data;
|
|
68
72
|
}
|
|
69
73
|
catch (error) {
|
|
@@ -76,22 +80,14 @@ const fetchCourseInstanses = (utbildningsinstansUIDn, ladokClient) => __awaiter(
|
|
|
76
80
|
throw (0, exports.handleError)('Failed to fetch utbildningsinstanses', error);
|
|
77
81
|
}
|
|
78
82
|
});
|
|
79
|
-
exports.
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
'REKOMMENDERADE KURSE': 'R',
|
|
88
|
-
'REKOMMENDERAD KURS': 'R',
|
|
89
|
-
'ELECTIVE COURSES': 'V',
|
|
90
|
-
'ELECTIVE COURSE': 'V',
|
|
91
|
-
'VALFRIA KURSER': 'V',
|
|
92
|
-
'VALFRI KURS': 'V',
|
|
93
|
-
}; // TODO - this has been created based on the test data that we have, it needs to be verified and updated after having the actual user stories
|
|
94
|
-
const categorizedStrukturDelar = strukturDelar.map(strukturdel => {
|
|
83
|
+
exports.fetchStructurePartsVersions = fetchStructurePartsVersions;
|
|
84
|
+
const categoryMap = {
|
|
85
|
+
'VILLKORLIGT VALFRI': 'VV',
|
|
86
|
+
'REKOMMENDERAD': 'R',
|
|
87
|
+
'VALFRI': 'V',
|
|
88
|
+
};
|
|
89
|
+
const categorizeStructureParts = (strukturDelar) => {
|
|
90
|
+
return strukturDelar.map(strukturdel => {
|
|
95
91
|
if (!strukturdel.Valinformation) {
|
|
96
92
|
return Object.assign(Object.assign({}, strukturdel), { Valvillkor: 'O' }); // Default to Obligatory
|
|
97
93
|
}
|
|
@@ -100,88 +96,104 @@ const fetchAndCategorizeStructure = (utbildningstillfalleUID, language, ladokCli
|
|
|
100
96
|
const category = categoryMap[engDescription.toUpperCase()] || categoryMap[sweDescription.toUpperCase()] || 'O';
|
|
101
97
|
return Object.assign(Object.assign({}, strukturdel), { Valvillkor: category });
|
|
102
98
|
});
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
99
|
+
};
|
|
100
|
+
function fetchMappedStructurePartInstances(categorizedStrukturDelar, language, ladokClient) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
const utbildningsbasUIDn = categorizedStrukturDelar.map(d => d.UtbildningsbasUID);
|
|
103
|
+
const courseInstances = yield (0, exports.fetchStructurePartInstances)(utbildningsbasUIDn, ladokClient);
|
|
104
|
+
const filtered = courseInstances.filter(Boolean);
|
|
105
|
+
return filtered.map(instance => (0, mapStructureCourses_1.mapStructurePartInstances)(instance, language));
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function separateSpecializations(instances) {
|
|
109
|
+
const filteredMappedStructurePartInstances = [];
|
|
110
|
+
const specializationListFromStructure = [];
|
|
111
|
+
instances.forEach(instance => {
|
|
110
112
|
var _a;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
if (((_a = instance.utbildningstyp) === null || _a === void 0 ? void 0 : _a.nameOther) === 'Inriktningstillfälle') {
|
|
114
|
+
if (!specializationListFromStructure.some(addedSpec => addedSpec.uid === instance.uid)) {
|
|
115
|
+
specializationListFromStructure.push(instance);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
filteredMappedStructurePartInstances.push(instance);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return { filteredMappedStructurePartInstances, specializationListFromStructure };
|
|
123
|
+
}
|
|
124
|
+
function fetchStructurePartVersionsFromStructurePartInstances(mappedStructurePartInstances, ladokClient, language) {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
const uids = mappedStructurePartInstances.map(spi => spi.utbildningsinstansUid);
|
|
127
|
+
const StructurePartVersions = yield (0, exports.fetchStructurePartsVersions)(uids, ladokClient);
|
|
128
|
+
return StructurePartVersions.map(StructurePartVersion => (0, mapCourseInstans_1.mapStructurePartVersions)(StructurePartVersion, language));
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function mergeStructurePartData(mappedStructurePartInstances, mappedStructurePartVersions, categorizedStrukturDelar) {
|
|
132
|
+
return mappedStructurePartVersions.map((mappedStructurePartVersion, index) => {
|
|
133
|
+
var _a;
|
|
134
|
+
return (Object.assign(Object.assign(Object.assign({}, mappedStructurePartInstances[index]), mappedStructurePartVersion), { Valvillkor: (_a = categorizedStrukturDelar[index]) === null || _a === void 0 ? void 0 : _a.Valvillkor }));
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
const fetchAndCategorizeStructureParts = (utbildningstillfalleUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
138
|
+
const structureParts = yield (0, exports.fetchStructureByTillfalleUid)(utbildningstillfalleUID, ladokClient);
|
|
139
|
+
const categorizedStrukturParts = categorizeStructureParts(structureParts);
|
|
140
|
+
const structurePartsInstances = yield fetchMappedStructurePartInstances(categorizedStrukturParts, language, ladokClient);
|
|
141
|
+
const { filteredMappedStructurePartInstances, specializationListFromStructure } = separateSpecializations(structurePartsInstances);
|
|
142
|
+
const filteredMappedStructurePartVersions = yield fetchStructurePartVersionsFromStructurePartInstances(filteredMappedStructurePartInstances, ladokClient, language);
|
|
143
|
+
const courseListFromStructure = mergeStructurePartData(filteredMappedStructurePartInstances, filteredMappedStructurePartVersions, categorizedStrukturParts);
|
|
144
|
+
return { courseListFromStructure, specializationListFromStructure };
|
|
145
|
+
});
|
|
146
|
+
exports.fetchAndCategorizeStructureParts = fetchAndCategorizeStructureParts;
|
|
147
|
+
const getMainProgramInstanceData = (uid, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
148
|
+
const programDetails = yield ladokClient.utbildningstillfalleSlim(uid, {
|
|
149
|
+
attributVarden: 'utbildningsinstans.uid,utbildning.attribut.startperiod',
|
|
113
150
|
});
|
|
114
|
-
|
|
151
|
+
if (programDetails.type === 'error') {
|
|
152
|
+
throw new Error(`API error: ${programDetails.responseInfo.message}`);
|
|
153
|
+
}
|
|
154
|
+
const omfattning = programDetails.data.Tillfallesperioder.reduce((sum, period) => sum + period.Omfattningsvarde, 0);
|
|
155
|
+
const startperiod = (0, ladok_attributvarde_utils_1.extractGrunddata)(programDetails.data.Attributvarden, 'utbildning.attribut.startperiod');
|
|
156
|
+
const lengthInStudyYears = Math.ceil(Number(omfattning) / 60);
|
|
157
|
+
const { courseListFromStructure, specializationListFromStructure } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
|
|
158
|
+
return {
|
|
159
|
+
startperiod,
|
|
160
|
+
lengthInStudyYears,
|
|
161
|
+
courseListFromStructure,
|
|
162
|
+
specializationListFromStructure,
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
const mapSpecializationCurriculums = (specializations, startperiodCode, lengthInStudyYears, language, ladokClient, allPeriods) => __awaiter(void 0, void 0, void 0, function* () {
|
|
166
|
+
const tillfalleUids = specializations.map(s => s.uid);
|
|
167
|
+
const instansUids = specializations.map(s => s.utbildningsinstansUid);
|
|
168
|
+
const specializatons = yield (0, exports.fetchStructurePartsVersions)(instansUids, ladokClient);
|
|
169
|
+
const mappedSpecializations = specializatons
|
|
170
|
+
.filter(Boolean)
|
|
171
|
+
.map(entity => (0, mapCourseInstans_1.mapStructurePartVersions)(entity, language));
|
|
172
|
+
const specializationsCourseListFromStructure = yield Promise.all(tillfalleUids.map((uid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
173
|
+
const { courseListFromStructure } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
|
|
174
|
+
return courseListFromStructure;
|
|
175
|
+
})));
|
|
176
|
+
return mappedSpecializations.map((spec, index) => ({
|
|
177
|
+
studyYears: (0, studyYearUtil_1.generateStudyYearData)(specializationsCourseListFromStructure[index], allPeriods, startperiodCode, lengthInStudyYears),
|
|
178
|
+
programmeSpecialization: {
|
|
179
|
+
programmeSpecializationCode: spec.kod,
|
|
180
|
+
title: spec.benamning,
|
|
181
|
+
},
|
|
182
|
+
}));
|
|
115
183
|
});
|
|
116
|
-
exports.fetchAndCategorizeStructure = fetchAndCategorizeStructure;
|
|
117
184
|
const fetchProgramStructure = (utbildningstillfalleUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
118
185
|
try {
|
|
119
|
-
const
|
|
120
|
-
if (programDetails.type === 'error') {
|
|
121
|
-
throw new Error(`API error: ${programDetails.responseInfo.message}`);
|
|
122
|
-
}
|
|
123
|
-
const instansUid = (0, ladok_attributvarde_utils_1.extractString)(programDetails.data.Attributvarden, 'utbildningsinstans.uid');
|
|
124
|
-
console.log('this is:', instansUid);
|
|
125
|
-
const omfattning = programDetails.data.Tillfallesperioder.reduce((sum, period) => sum + period.Omfattningsvarde, 0);
|
|
126
|
-
const startperiod = (0, ladok_attributvarde_utils_1.extractGrunddata)(programDetails.data.Attributvarden, 'utbildning.attribut.startperiod');
|
|
127
|
-
const lengthInStudyYears = Math.ceil(Number(omfattning) / 60);
|
|
128
|
-
const categorizedCourseEntities = yield (0, exports.fetchAndCategorizeStructure)(utbildningstillfalleUID, language, ladokClient);
|
|
186
|
+
const { startperiod, lengthInStudyYears, courseListFromStructure, specializationListFromStructure, } = yield getMainProgramInstanceData(utbildningstillfalleUID, language, ladokClient);
|
|
129
187
|
const periodData = yield ladokClient.period();
|
|
130
188
|
if (periodData.type === 'error') {
|
|
131
189
|
throw new Error(`API error: ${periodData.responseInfo.message}`);
|
|
132
190
|
}
|
|
133
|
-
const mainStudyYears = (0, studyYearUtil_1.generateStudyYearData)(
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
})));
|
|
140
|
-
specializatons = specializatons.filter(specializaton => specializaton !== null);
|
|
141
|
-
const mappedSpecializatons = specializatons.map(entity => (0, mapCourseInstans_1.mapCourseInstans)(entity, language));
|
|
142
|
-
function getStudyYearForSpecializationFilter(startPeriod) {
|
|
143
|
-
const year = parseInt(startPeriod.substring(2));
|
|
144
|
-
if (startPeriod.startsWith('VT')) {
|
|
145
|
-
return `VT${year}`;
|
|
146
|
-
}
|
|
147
|
-
else if (startPeriod.startsWith('HT')) {
|
|
148
|
-
return `HT${year},VT${year + 1}`;
|
|
149
|
-
}
|
|
150
|
-
return '';
|
|
151
|
-
}
|
|
152
|
-
const tillfalleUids = yield Promise.all(mappedSpecializatons.map((specialization) => __awaiter(void 0, void 0, void 0, function* () {
|
|
153
|
-
var _a, _b;
|
|
154
|
-
const requestObject = {
|
|
155
|
-
kodEllerBenamning: specialization.kod,
|
|
156
|
-
startPeriod: getStudyYearForSpecializationFilter(startperiod === null || startperiod === void 0 ? void 0 : startperiod.code),
|
|
157
|
-
striktKod: 'true',
|
|
158
|
-
};
|
|
159
|
-
const tillfalle = yield ladokClient.sokUtbildningsTillfalle(requestObject);
|
|
160
|
-
return (_b = (_a = tillfalle === null || tillfalle === void 0 ? void 0 : tillfalle.items) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.tillfalle_uid;
|
|
161
|
-
})));
|
|
162
|
-
const curriculums = [];
|
|
163
|
-
curriculums.push({
|
|
164
|
-
studyYears: mainStudyYears,
|
|
165
|
-
});
|
|
166
|
-
let specializatonsCategorizedCourseEntities = yield Promise.all(tillfalleUids.map((tillfalleUid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
167
|
-
if (tillfalleUid) {
|
|
168
|
-
const studyYear = yield (0, exports.fetchAndCategorizeStructure)(tillfalleUid, language, ladokClient);
|
|
169
|
-
return studyYear;
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
return [];
|
|
173
|
-
}
|
|
174
|
-
})));
|
|
175
|
-
mappedSpecializatons.forEach((specialization, index) => {
|
|
176
|
-
curriculums.push({
|
|
177
|
-
studyYears: (0, studyYearUtil_1.generateStudyYearData)(specializatonsCategorizedCourseEntities[index], periodData.data.Period, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears),
|
|
178
|
-
programmeSpecialization: {
|
|
179
|
-
programmeSpecializationCode: specialization.kod,
|
|
180
|
-
title: specialization.benamning,
|
|
181
|
-
},
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
return curriculums;
|
|
191
|
+
const mainStudyYears = (0, studyYearUtil_1.generateStudyYearData)(courseListFromStructure, periodData.data.Period, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears);
|
|
192
|
+
const specializationCurriculums = yield mapSpecializationCurriculums(specializationListFromStructure, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears, language, ladokClient, periodData.data.Period);
|
|
193
|
+
return [
|
|
194
|
+
{ studyYears: mainStudyYears },
|
|
195
|
+
...specializationCurriculums,
|
|
196
|
+
];
|
|
185
197
|
}
|
|
186
198
|
catch (error) {
|
|
187
199
|
throw (0, exports.handleError)('Unexpected error during processing', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programStrukturUtil.js","sourceRoot":"","sources":["../../src/utils/programStrukturUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"programStrukturUtil.js","sourceRoot":"","sources":["../../src/utils/programStrukturUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PeriodItem } from '@kth/ladok-mellanlager-client
|
|
1
|
+
import { PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
export declare const LAST_YEAR_TO_USE_SYLLABUSES_FOR_KURSLISTA = 2025;
|
|
2
3
|
type CourseData = {
|
|
3
4
|
kod: string;
|
|
4
5
|
benamning: string;
|
|
@@ -20,6 +21,7 @@ type StudyYear = {
|
|
|
20
21
|
yearNumber: number;
|
|
21
22
|
courses: CourseData[];
|
|
22
23
|
};
|
|
24
|
+
export declare const extractYear: (kod: string) => number;
|
|
23
25
|
export declare const getStudyYear: (periodEndDate: string, periodDetails: PeriodItem[], mainStartPeriod: string) => number;
|
|
24
26
|
export declare const generateStudyYearData: (coursesData: CourseData[], periodDetails: PeriodItem[], mainStartPeriod: string, lengthStudyYear: number) => StudyYear[];
|
|
25
27
|
export {};
|
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateStudyYearData = exports.getStudyYear = void 0;
|
|
3
|
+
exports.generateStudyYearData = exports.getStudyYear = exports.extractYear = exports.LAST_YEAR_TO_USE_SYLLABUSES_FOR_KURSLISTA = void 0;
|
|
4
4
|
const date_fns_1 = require("date-fns");
|
|
5
|
+
exports.LAST_YEAR_TO_USE_SYLLABUSES_FOR_KURSLISTA = 2025;
|
|
6
|
+
const extractYear = (kod) => {
|
|
7
|
+
const isAutumn = kod.startsWith('HT');
|
|
8
|
+
const year = parseInt(kod.slice(2), 10);
|
|
9
|
+
return isAutumn ? year : year - 1;
|
|
10
|
+
};
|
|
11
|
+
exports.extractYear = extractYear;
|
|
5
12
|
const getStudyYear = (periodEndDate, periodDetails, mainStartPeriod) => {
|
|
6
|
-
const mainStartYear = parseInt(mainStartPeriod.slice(2), 10);
|
|
7
|
-
const mainIsAutumn = mainStartPeriod.startsWith('HT');
|
|
8
13
|
const matchedPeriod = periodDetails.find(p => (0, date_fns_1.parseISO)(p.FromDatum) <= (0, date_fns_1.parseISO)(periodEndDate) &&
|
|
9
14
|
(0, date_fns_1.parseISO)(p.TomDatum) >= (0, date_fns_1.parseISO)(periodEndDate) &&
|
|
10
15
|
(p.Kod.includes('VT') || p.Kod.includes('HT')));
|
|
11
16
|
if (!matchedPeriod)
|
|
12
17
|
throw new Error('No matching period found');
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const startStudyYear = isAutumn ? year : year - 1;
|
|
16
|
-
const baseYear = mainIsAutumn ? mainStartYear : mainStartYear - 1;
|
|
18
|
+
const baseYear = (0, exports.extractYear)(mainStartPeriod);
|
|
19
|
+
const startStudyYear = (0, exports.extractYear)(matchedPeriod.Kod);
|
|
17
20
|
return startStudyYear - baseYear + 1;
|
|
18
21
|
};
|
|
19
22
|
exports.getStudyYear = getStudyYear;
|
|
20
23
|
const generateStudyYearData = (coursesData, periodDetails, mainStartPeriod, lengthStudyYear) => {
|
|
21
24
|
const studyYears = {};
|
|
25
|
+
const baseYear = (0, exports.extractYear)(mainStartPeriod);
|
|
22
26
|
coursesData.forEach(course => {
|
|
23
27
|
const studyYearToPeriods = {};
|
|
24
28
|
course.Tillfallesperioder.forEach(period => {
|
|
25
29
|
const studyYear = (0, exports.getStudyYear)(period.SistaUndervisningsdatum, periodDetails, mainStartPeriod);
|
|
26
30
|
if (studyYear >= 1 && studyYear <= lengthStudyYear) {
|
|
31
|
+
const actualStudyYear = baseYear + studyYear - 1;
|
|
32
|
+
if (actualStudyYear < exports.LAST_YEAR_TO_USE_SYLLABUSES_FOR_KURSLISTA)
|
|
33
|
+
return;
|
|
27
34
|
if (!studyYearToPeriods[studyYear]) {
|
|
28
35
|
studyYearToPeriods[studyYear] = [];
|
|
29
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studyYearUtil.js","sourceRoot":"","sources":["../../src/utils/studyYearUtil.ts"],"names":[],"mappings":";;;AACA,uCAAmC;
|
|
1
|
+
{"version":3,"file":"studyYearUtil.js","sourceRoot":"","sources":["../../src/utils/studyYearUtil.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kth/om-kursen-ladok-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Om kursen specific logic and mappings, uses both @kth/ladok-mellanlager-client and @kth/ladok-attributevarde-utils.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
"build:publish": "npm install --no-workspaces && npm run build"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@kth/ladok-attributvarde-utils": "0.0
|
|
25
|
-
"@kth/ladok-mellanlager-client": "0.
|
|
24
|
+
"@kth/ladok-attributvarde-utils": "0.1.0",
|
|
25
|
+
"@kth/ladok-mellanlager-client": "0.3.0",
|
|
26
|
+
"date-fns": "^4.1.0",
|
|
27
|
+
"showdown": "^2.1.0"
|
|
26
28
|
}
|
|
27
29
|
}
|