@kth/om-kursen-ladok-client 1.3.5 → 1.3.6
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 +2 -77
- package/dist/createApiClient.js.map +1 -1
- package/dist/groupSearchResults.d.ts +8 -1
- package/dist/groupSearchResults.js +9 -2
- package/dist/groupSearchResults.js.map +1 -1
- package/dist/mapCourse.d.ts +11 -12
- package/dist/mapCourse.js +24 -13
- package/dist/mapCourse.js.map +1 -1
- package/dist/mapSearchResult.d.ts +1 -1
- package/dist/mapSearchResult.js +4 -3
- package/dist/mapSearchResult.js.map +1 -1
- package/dist/{mapCourseInstans.d.ts → mapStructurePartVersions.d.ts} +4 -0
- package/dist/{mapCourseInstans.js → mapStructurePartVersions.js} +7 -1
- package/dist/mapStructurePartVersions.js.map +1 -0
- package/dist/search/SearchError.d.ts +32 -0
- package/dist/search/SearchError.js +51 -0
- package/dist/search/SearchError.js.map +1 -0
- package/dist/search/createSearchApi.d.ts +3 -0
- package/dist/search/createSearchApi.js +103 -0
- package/dist/search/createSearchApi.js.map +1 -0
- package/dist/search/types.d.ts +21 -0
- package/dist/search/types.js +3 -0
- package/dist/search/types.js.map +1 -0
- package/dist/search/utils/getAllEntitiesByUseOfContinuation.d.ts +18 -0
- package/dist/search/utils/getAllEntitiesByUseOfContinuation.js +49 -0
- package/dist/search/utils/getAllEntitiesByUseOfContinuation.js.map +1 -0
- package/dist/search/utils/searchUtils.d.ts +18 -0
- package/dist/search/utils/searchUtils.js +87 -0
- package/dist/search/utils/searchUtils.js.map +1 -0
- package/dist/types/OmKursenLadokApiClient.d.ts +2 -12
- package/dist/utils/errorUtils.d.ts +14 -0
- package/dist/utils/errorUtils.js +50 -0
- package/dist/utils/errorUtils.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/periodUtil.d.ts +1 -1
- package/dist/utils/periodUtil.js +2 -4
- package/dist/utils/periodUtil.js.map +1 -1
- package/dist/utils/programStrukturUtil.d.ts +25 -74
- package/dist/utils/programStrukturUtil.js +100 -43
- package/dist/utils/programStrukturUtil.js.map +1 -1
- package/dist/utils/programUtil.d.ts +0 -2
- package/dist/utils/programUtil.js +4 -15
- package/dist/utils/programUtil.js.map +1 -1
- package/dist/utils/studyYearUtil.d.ts +4 -21
- package/dist/utils/studyYearUtil.js.map +1 -1
- package/dist/utils/versionUtils.d.ts +28 -0
- package/dist/utils/versionUtils.js +58 -0
- package/dist/utils/versionUtils.js.map +1 -0
- package/package.json +3 -3
- package/dist/mapCourseInstans.js.map +0 -1
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
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
|
-
const
|
|
14
|
+
const mapStructurePartVersions_1 = require("../mapStructurePartVersions");
|
|
15
15
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
16
16
|
const studyYearUtil_1 = require("./studyYearUtil");
|
|
17
17
|
const handleError = (message, error) => {
|
|
@@ -66,7 +66,7 @@ const fetchStructurePartsVersions = (utbildningsinstansUIDn, ladokClient) => __a
|
|
|
66
66
|
const moduler = yield Promise.all(utbildningsinstansUIDn.map((utbildningsinstansUID) => __awaiter(void 0, void 0, void 0, function* () {
|
|
67
67
|
try {
|
|
68
68
|
const utbildningsinstans = yield ladokClient.utbildningsinstansSlim(utbildningsinstansUID, {
|
|
69
|
-
attributVarden: 'utbildning.attribut.svensk.benamning,utbildning.attribut.engelsk.benamning,utbildning.attribut.kod,utbildningstyp',
|
|
69
|
+
attributVarden: 'utbildning.attribut.svensk.benamning,utbildning.attribut.engelsk.benamning,utbildning.attribut.kod,utbildningstyp,utbildning.attribut.omfattning',
|
|
70
70
|
});
|
|
71
71
|
return utbildningsinstans.data;
|
|
72
72
|
}
|
|
@@ -97,58 +97,115 @@ const categorizeStructureParts = (strukturDelar) => {
|
|
|
97
97
|
return Object.assign(Object.assign({}, strukturdel), { Valvillkor: category });
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
|
-
function
|
|
100
|
+
function fetchStructurePartsByType(categorizedStrukturDelar, language, ladokClient) {
|
|
101
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
const categorizedMap = new Map(categorizedStrukturDelar.map(c => [c.UtbildningsbasUID, c]));
|
|
102
103
|
const utbildningsbasUIDn = categorizedStrukturDelar.map(d => d.UtbildningsbasUID);
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
|
|
104
|
+
const results = [];
|
|
105
|
+
for (const uid of utbildningsbasUIDn) {
|
|
106
|
+
const categorized = categorizedMap.get(uid);
|
|
107
|
+
if (!categorized)
|
|
108
|
+
continue;
|
|
109
|
+
// here we try to findout which type the utbildningsbasUID belongs to: instance or version
|
|
110
|
+
const [instanceResult, versionResult] = yield Promise.allSettled([
|
|
111
|
+
(0, exports.fetchStructurePartInstances)([uid], ladokClient),
|
|
112
|
+
(0, exports.fetchStructurePartsVersions)([uid], ladokClient),
|
|
113
|
+
]);
|
|
114
|
+
function isSuccessfulNonEmptyResult(result) {
|
|
115
|
+
return (result.status === 'fulfilled' &&
|
|
116
|
+
Array.isArray(result.value) &&
|
|
117
|
+
result.value.length > 0 &&
|
|
118
|
+
result.value[0] !== undefined);
|
|
119
|
+
}
|
|
120
|
+
if (isSuccessfulNonEmptyResult(instanceResult)) {
|
|
121
|
+
// it means that the data belongs to instance type
|
|
122
|
+
results.push({
|
|
123
|
+
type: 'instance',
|
|
124
|
+
data: (0, mapStructureCourses_1.mapStructurePartInstances)(instanceResult.value[0], language),
|
|
125
|
+
categorized,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if (isSuccessfulNonEmptyResult(versionResult)) {
|
|
129
|
+
// it means that the data belongs to version type
|
|
130
|
+
results.push({
|
|
131
|
+
type: 'version',
|
|
132
|
+
data: (0, mapStructurePartVersions_1.mapStructurePartVersions)(versionResult.value[0], language),
|
|
133
|
+
categorized,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return results;
|
|
106
138
|
});
|
|
107
139
|
}
|
|
108
140
|
const SPECIALIZATION_INSTANCE_TYPE = 'Inriktningstillfälle';
|
|
109
141
|
function isSpecializationInstance(instance) {
|
|
110
|
-
|
|
111
|
-
|
|
142
|
+
if (instance.type === 'instance') {
|
|
143
|
+
const utbildningstyp = instance.data.utbildningstyp;
|
|
144
|
+
return (utbildningstyp === null || utbildningstyp === void 0 ? void 0 : utbildningstyp.id) === ladok_attributvarde_utils_1.EducationalTypeID.Specialisation;
|
|
145
|
+
}
|
|
146
|
+
else
|
|
147
|
+
return false;
|
|
112
148
|
}
|
|
113
|
-
function separateSpecializations(
|
|
114
|
-
const
|
|
149
|
+
function separateSpecializations(structureParts) {
|
|
150
|
+
const filteredMappedStructurePartsDividedByType = [];
|
|
115
151
|
const specializationListFromStructure = [];
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
152
|
+
structureParts.forEach(structurePart => {
|
|
153
|
+
// base condition for finding specializations is that the need to be instance type
|
|
154
|
+
if (isSpecializationInstance(structurePart)) {
|
|
155
|
+
if (!specializationListFromStructure.some(addedSpec => addedSpec.uid === structurePart.data.uid)) {
|
|
156
|
+
specializationListFromStructure.push(structurePart.data);
|
|
120
157
|
}
|
|
121
158
|
}
|
|
122
159
|
else {
|
|
123
|
-
|
|
160
|
+
filteredMappedStructurePartsDividedByType.push(structurePart);
|
|
124
161
|
}
|
|
125
162
|
});
|
|
126
|
-
return {
|
|
163
|
+
return { filteredMappedStructurePartsDividedByType, specializationListFromStructure };
|
|
127
164
|
}
|
|
128
|
-
function
|
|
165
|
+
function mergeStructurePartInstancesAndVersions(filteredMappedStructurePartsDividedByType, ladokClient, language) {
|
|
129
166
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
const
|
|
141
|
-
|
|
167
|
+
var _a;
|
|
168
|
+
const instanceParts = filteredMappedStructurePartsDividedByType.filter(part => part.type === 'instance');
|
|
169
|
+
const versionParts = filteredMappedStructurePartsDividedByType.filter(part => part.type === 'version');
|
|
170
|
+
// Fetch versions for all instances
|
|
171
|
+
const uids = instanceParts.map(part => part.data.utbildningsinstansUid);
|
|
172
|
+
const versionResponse = yield (0, exports.fetchStructurePartsVersions)(uids, ladokClient);
|
|
173
|
+
const mappedVersions = versionResponse.map(v => (0, mapStructurePartVersions_1.mapStructurePartVersions)(v, language));
|
|
174
|
+
const versionMap = new Map(mappedVersions.map(v => [v.utbildningsinstansUid, v]));
|
|
175
|
+
const mergedResults = [];
|
|
176
|
+
// Instance + fetched version
|
|
177
|
+
for (const instance of instanceParts) {
|
|
178
|
+
const version = versionMap.get(instance.data.utbildningsinstansUid);
|
|
179
|
+
if (version) {
|
|
180
|
+
mergedResults.push(Object.assign(Object.assign(Object.assign({}, instance.data), version), { Valvillkor: instance.categorized.Valvillkor }));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// version-only entries (no matching instance)
|
|
184
|
+
for (const version of versionParts) {
|
|
185
|
+
// course versions are added in structures since in ladok we don't have course instances for future, so we should make the course verison similar to course instance here
|
|
186
|
+
if (!((_a = version === null || version === void 0 ? void 0 : version.categorized) === null || _a === void 0 ? void 0 : _a.Slutdatum))
|
|
187
|
+
continue;
|
|
188
|
+
const Tillfallesperioder = [
|
|
189
|
+
{
|
|
190
|
+
ForstaUndervisningsdatum: version.categorized.Startdatum,
|
|
191
|
+
SistaUndervisningsdatum: version.categorized.Slutdatum,
|
|
192
|
+
},
|
|
193
|
+
];
|
|
194
|
+
mergedResults.push(Object.assign(Object.assign({}, version.data), { Tillfallesperioder, Valvillkor: version.categorized.Valvillkor }));
|
|
195
|
+
}
|
|
196
|
+
return mergedResults;
|
|
142
197
|
});
|
|
143
198
|
}
|
|
144
199
|
const fetchAndCategorizeStructureParts = (utbildningstillfalleUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
145
200
|
const structureParts = yield (0, exports.fetchStructureByTillfalleUid)(utbildningstillfalleUID, ladokClient);
|
|
146
201
|
const categorizedStrukturParts = categorizeStructureParts(structureParts);
|
|
147
|
-
const
|
|
148
|
-
const {
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
202
|
+
const structurePartsDevidedByType = yield fetchStructurePartsByType(categorizedStrukturParts, language, ladokClient);
|
|
203
|
+
const { filteredMappedStructurePartsDividedByType, specializationListFromStructure } = separateSpecializations(structurePartsDevidedByType);
|
|
204
|
+
const filteredMappedStructurePartInstancesAndVersions = yield mergeStructurePartInstancesAndVersions(filteredMappedStructurePartsDividedByType, ladokClient, language);
|
|
205
|
+
return {
|
|
206
|
+
structureCourses: filteredMappedStructurePartInstancesAndVersions,
|
|
207
|
+
structureSpecializations: specializationListFromStructure,
|
|
208
|
+
};
|
|
152
209
|
});
|
|
153
210
|
exports.fetchAndCategorizeStructureParts = fetchAndCategorizeStructureParts;
|
|
154
211
|
const getMainProgramInstanceData = (uid, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -161,12 +218,12 @@ const getMainProgramInstanceData = (uid, language, ladokClient) => __awaiter(voi
|
|
|
161
218
|
const omfattning = programDetails.data.Tillfallesperioder.reduce((sum, period) => sum + period.Omfattningsvarde, 0);
|
|
162
219
|
const startperiod = (0, ladok_attributvarde_utils_1.extractGrunddata)(programDetails.data.Attributvarden, 'utbildning.attribut.startperiod');
|
|
163
220
|
const lengthInStudyYears = Math.ceil(Number(omfattning) / 60);
|
|
164
|
-
const {
|
|
221
|
+
const { structureCourses, structureSpecializations } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
|
|
165
222
|
return {
|
|
166
223
|
startperiod,
|
|
167
224
|
lengthInStudyYears,
|
|
168
|
-
|
|
169
|
-
|
|
225
|
+
structureCourses,
|
|
226
|
+
structureSpecializations,
|
|
170
227
|
};
|
|
171
228
|
});
|
|
172
229
|
const mapSpecializationCurriculums = (specializations, startperiodCode, lengthInStudyYears, language, ladokClient, allPeriods) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -175,10 +232,10 @@ const mapSpecializationCurriculums = (specializations, startperiodCode, lengthIn
|
|
|
175
232
|
const specializatons = yield (0, exports.fetchStructurePartsVersions)(instansUids, ladokClient);
|
|
176
233
|
const mappedSpecializations = specializatons
|
|
177
234
|
.filter(Boolean)
|
|
178
|
-
.map(entity => (0,
|
|
235
|
+
.map(entity => (0, mapStructurePartVersions_1.mapStructurePartVersions)(entity, language));
|
|
179
236
|
const specializationsCourseListFromStructure = yield Promise.all(tillfalleUids.map((uid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
180
|
-
const {
|
|
181
|
-
return
|
|
237
|
+
const { structureCourses } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
|
|
238
|
+
return structureCourses;
|
|
182
239
|
})));
|
|
183
240
|
return mappedSpecializations.map((spec, index) => ({
|
|
184
241
|
studyYears: (0, studyYearUtil_1.generateStudyYearData)(specializationsCourseListFromStructure[index], allPeriods, startperiodCode, lengthInStudyYears),
|
|
@@ -190,13 +247,13 @@ const mapSpecializationCurriculums = (specializations, startperiodCode, lengthIn
|
|
|
190
247
|
});
|
|
191
248
|
const fetchProgramStructure = (utbildningstillfalleUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
192
249
|
try {
|
|
193
|
-
const { startperiod, lengthInStudyYears,
|
|
250
|
+
const { startperiod, lengthInStudyYears, structureCourses, structureSpecializations } = yield getMainProgramInstanceData(utbildningstillfalleUID, language, ladokClient);
|
|
194
251
|
const periodData = yield ladokClient.period(); // TODO: Use cached values
|
|
195
252
|
if (periodData.type === 'error') {
|
|
196
253
|
throw new Error(`API error: ${periodData.responseInfo.message}`);
|
|
197
254
|
}
|
|
198
|
-
const mainStudyYears = (0, studyYearUtil_1.generateStudyYearData)(
|
|
199
|
-
const specializationCurriculums = yield mapSpecializationCurriculums(
|
|
255
|
+
const mainStudyYears = (0, studyYearUtil_1.generateStudyYearData)(structureCourses, periodData.data.Period, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears);
|
|
256
|
+
const specializationCurriculums = yield mapSpecializationCurriculums(structureSpecializations, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears, language, ladokClient, periodData.data.Period);
|
|
200
257
|
return [{ studyYears: mainStudyYears }, ...specializationCurriculums];
|
|
201
258
|
}
|
|
202
259
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programStrukturUtil.js","sourceRoot":"","sources":["../../src/utils/programStrukturUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,gEAAyF;AACzF,
|
|
1
|
+
{"version":3,"file":"programStrukturUtil.js","sourceRoot":"","sources":["../../src/utils/programStrukturUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,6 @@ import { Language } from './languageUtil';
|
|
|
3
3
|
import { ProgramInstans } from '../mapProgramInstans';
|
|
4
4
|
import { Lokalmarkning } from '@kth/ladok-attributvarde-utils';
|
|
5
5
|
export declare const filterAndMapProgramTillfalle: (response: MellanlagringSearchResponse<SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem>, language: Language) => import("../mapProgramTillfalle").ProgramTillfalle[];
|
|
6
|
-
export declare const findProgramWithHighestVersionNumber: (programs: ProgramInstans[]) => ProgramInstans | undefined;
|
|
7
|
-
export declare const findProgramWithLowestVersionNumber: (programs: ProgramInstans[]) => ProgramInstans | undefined;
|
|
8
6
|
export declare const selectProgramInstans: (code: string | undefined, periods: PeriodItem[], programs: ProgramInstans[]) => ProgramInstans | undefined;
|
|
9
7
|
export declare const filterAndMapProgramInstans: (response: MellanlagringSearchResponse<SokUtbildningsInstansItem | SokUtbildningsInstansSlimItem>, periods: PeriodItem[], code: string, language: Language, ladokClient: LadokMellanlagerApiClient) => Promise<(ProgramInstans & {
|
|
10
8
|
approvedStudyProgrammeTerms: string[];
|
|
@@ -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.getProgramTerms = exports.hasCourseListMarking = exports.filterAndMapProgramInstans = exports.selectProgramInstans = exports.
|
|
12
|
+
exports.getProgramTerms = exports.hasCourseListMarking = exports.filterAndMapProgramInstans = exports.selectProgramInstans = exports.filterAndMapProgramTillfalle = void 0;
|
|
13
13
|
const mapProgramTillfalle_1 = require("../mapProgramTillfalle");
|
|
14
14
|
const mapProgramInstans_1 = require("../mapProgramInstans");
|
|
15
15
|
const periodUtil_1 = require("./periodUtil");
|
|
@@ -17,6 +17,7 @@ const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
|
17
17
|
const mapProgramTerm_1 = require("../mapProgramTerm");
|
|
18
18
|
const studyYearUtil_1 = require("./studyYearUtil");
|
|
19
19
|
const typeChecking_1 = require("./typeChecking");
|
|
20
|
+
const versionUtils_1 = require("./versionUtils");
|
|
20
21
|
const SEMESTER_FOR_START_READING_STRUCTURES = {
|
|
21
22
|
code: 'HT2020', // we will increase 2025 by 5 (maximum study year that we have for a program) since there can be ongoing programs until 2025
|
|
22
23
|
}; // Based on the following document: https://confluence.sys.kth.se/confluence/pages/viewpage.action?pageId=262933569
|
|
@@ -35,23 +36,11 @@ const filterAndMapProgramTillfalle = (response, language) => {
|
|
|
35
36
|
.filter(x => (0, exports.hasCourseListMarking)(x.lokalmarkning));
|
|
36
37
|
};
|
|
37
38
|
exports.filterAndMapProgramTillfalle = filterAndMapProgramTillfalle;
|
|
38
|
-
const findProgramWithHighestVersionNumber = (programs) => {
|
|
39
|
-
return programs
|
|
40
|
-
.filter(program => program.versionsnummer !== undefined)
|
|
41
|
-
.sort((a, b) => { var _a, _b; return ((_a = Number(b.versionsnummer)) !== null && _a !== void 0 ? _a : 0) - ((_b = Number(a.versionsnummer)) !== null && _b !== void 0 ? _b : 0); })[0];
|
|
42
|
-
};
|
|
43
|
-
exports.findProgramWithHighestVersionNumber = findProgramWithHighestVersionNumber;
|
|
44
|
-
const findProgramWithLowestVersionNumber = (programs) => {
|
|
45
|
-
return programs
|
|
46
|
-
.filter(program => program.versionsnummer !== undefined)
|
|
47
|
-
.sort((a, b) => { var _a, _b; return ((_a = Number(a.versionsnummer)) !== null && _a !== void 0 ? _a : 0) - ((_b = Number(b.versionsnummer)) !== null && _b !== void 0 ? _b : 0); })[0];
|
|
48
|
-
};
|
|
49
|
-
exports.findProgramWithLowestVersionNumber = findProgramWithLowestVersionNumber;
|
|
50
39
|
const selectProgramInstans = (code, periods, programs) => {
|
|
51
40
|
if (code) {
|
|
52
41
|
return (0, periodUtil_1.findValidProgramForCode)(code, periods, programs);
|
|
53
42
|
}
|
|
54
|
-
return (0,
|
|
43
|
+
return (0, versionUtils_1.findLatestVersion)(programs);
|
|
55
44
|
};
|
|
56
45
|
exports.selectProgramInstans = selectProgramInstans;
|
|
57
46
|
const filterAndMapProgramInstans = (response, periods, code, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -63,7 +52,7 @@ const filterAndMapProgramInstans = (response, periods, code, language, ladokClie
|
|
|
63
52
|
.map(item => (0, mapProgramInstans_1.mapProgramInstans)(item, language))
|
|
64
53
|
.filter((program) => !!program);
|
|
65
54
|
// A program can have different versions, we need to have the oldest one to know what is the first admission date for the program
|
|
66
|
-
const oldestVersion = (0,
|
|
55
|
+
const oldestVersion = (0, versionUtils_1.findOldestVersion)(mappedPrograms);
|
|
67
56
|
const selectedProgram = (0, exports.selectProgramInstans)(code, periods, mappedPrograms);
|
|
68
57
|
if (!selectedProgram || !oldestVersion)
|
|
69
58
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programUtil.js","sourceRoot":"","sources":["../../src/utils/programUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA,gEAA4D;AAC5D,4DAAwE;AACxE,6CAKqB;AACrB,8EAAuG;AACvG,sDAAkD;AAClD,mDAAoD;AACpD,iDAA0C;
|
|
1
|
+
{"version":3,"file":"programUtil.js","sourceRoot":"","sources":["../../src/utils/programUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,13 @@
|
|
|
1
1
|
import { PeriodItem, SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { ProgramCourse } from './programStrukturUtil';
|
|
2
3
|
export declare const LAST_YEAR_TO_USE_SYLLABUSES_FOR_KURSLISTA = 2025;
|
|
3
|
-
type
|
|
4
|
-
kod: string;
|
|
5
|
-
benamning: string;
|
|
6
|
-
Valvillkor: string;
|
|
7
|
-
omfattning: {
|
|
8
|
-
number: number;
|
|
9
|
-
formattedWithUnit: string;
|
|
10
|
-
};
|
|
11
|
-
startperiod?: {
|
|
12
|
-
code: string;
|
|
13
|
-
};
|
|
14
|
-
Tillfallesperioder: {
|
|
15
|
-
SistaUndervisningsdatum: string;
|
|
16
|
-
}[];
|
|
17
|
-
uid: string;
|
|
18
|
-
utbildningsinstansUid: string;
|
|
19
|
-
};
|
|
20
|
-
type StudyYear = {
|
|
4
|
+
export type StudyYear = {
|
|
21
5
|
yearNumber: number;
|
|
22
|
-
courses:
|
|
6
|
+
courses: ProgramCourse[];
|
|
23
7
|
};
|
|
24
8
|
export declare const findMatchingPeriod: (date: string, periods: PeriodItem[]) => PeriodItem | undefined;
|
|
25
9
|
export declare const extractYear: (kod: string) => number;
|
|
26
10
|
export declare const getStudyYearFromEndDate: (periodEndDate: string, periodDetails: PeriodItem[], mainStartPeriod: string) => number | undefined;
|
|
27
|
-
export declare const generateStudyYearData: (coursesData:
|
|
11
|
+
export declare const generateStudyYearData: (coursesData: ProgramCourse[], periodDetails: PeriodItem[], mainStartPeriod: string, lengthStudyYear: number) => StudyYear[];
|
|
28
12
|
export declare const getStudyYearFromSemesters: (programmeStartSemester: string, courseStartSemester: string) => number | null;
|
|
29
13
|
export declare const extractStudyYears: (courseInstance: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, programmeInstance: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, periodItems: PeriodItem[]) => number[];
|
|
30
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studyYearUtil.js","sourceRoot":"","sources":["../../src/utils/studyYearUtil.ts"],"names":[],"mappings":";;;AACA,uCAAmC;AACnC,6CAA0C;
|
|
1
|
+
{"version":3,"file":"studyYearUtil.js","sourceRoot":"","sources":["../../src/utils/studyYearUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type EntityWithVersionsnummer = {
|
|
2
|
+
versionsnummer: string;
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* For an array of entities with versionsnummer, this function returns the entity with the latest version (i.e. the highest versionsnummer).
|
|
6
|
+
* @param entities
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare const findLatestVersion: <T extends EntityWithVersionsnummer>(entities: T[]) => T | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* For an array of entities with versionsnummer, this function returns the entity with the oldest version (i.e. the lowest versionsnummer).
|
|
12
|
+
* @param entities
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare const findOldestVersion: <T extends EntityWithVersionsnummer>(entities: T[]) => T | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Returns a copy of an array of entities with versionsnummer, sorted in descending order based on the versionsnummer.
|
|
18
|
+
* @param entities
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare const sortByVersionsnummerDesc: <T extends EntityWithVersionsnummer>(entities: T[]) => T[];
|
|
22
|
+
/**
|
|
23
|
+
* Returns a copy of an array of entities with versionsnummer, sorted in ascending order based on the versionsnummer.
|
|
24
|
+
* @param entities
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export declare const sortByVersionsnummerAsc: <T extends EntityWithVersionsnummer>(entities: T[]) => T[];
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortByVersionsnummerAsc = exports.sortByVersionsnummerDesc = exports.findOldestVersion = exports.findLatestVersion = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* For an array of entities with versionsnummer, this function returns the entity with the latest version (i.e. the highest versionsnummer).
|
|
6
|
+
* @param entities
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
const findLatestVersion = (entities) => {
|
|
10
|
+
return (0, exports.sortByVersionsnummerDesc)(entities).at(0);
|
|
11
|
+
};
|
|
12
|
+
exports.findLatestVersion = findLatestVersion;
|
|
13
|
+
/**
|
|
14
|
+
* For an array of entities with versionsnummer, this function returns the entity with the oldest version (i.e. the lowest versionsnummer).
|
|
15
|
+
* @param entities
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
const findOldestVersion = (entities) => {
|
|
19
|
+
return (0, exports.sortByVersionsnummerAsc)(entities).at(0);
|
|
20
|
+
};
|
|
21
|
+
exports.findOldestVersion = findOldestVersion;
|
|
22
|
+
/**
|
|
23
|
+
* Returns a copy of an array of entities with versionsnummer, sorted in descending order based on the versionsnummer.
|
|
24
|
+
* @param entities
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
const sortByVersionsnummerDesc = (entities) => {
|
|
28
|
+
return [...entities].sort(compareVersionsnummerDesc); // TODO ES2023 introduces toSorted() which sorts a copy of the array
|
|
29
|
+
};
|
|
30
|
+
exports.sortByVersionsnummerDesc = sortByVersionsnummerDesc;
|
|
31
|
+
const compareVersionsnummerDesc = (a, b) => {
|
|
32
|
+
const versionsnummerA = parseInt(a.versionsnummer, 10);
|
|
33
|
+
const versionsnummerB = parseInt(b.versionsnummer, 10);
|
|
34
|
+
if (isNaN(versionsnummerA))
|
|
35
|
+
return 1;
|
|
36
|
+
if (isNaN(versionsnummerB))
|
|
37
|
+
return -1;
|
|
38
|
+
return versionsnummerB - versionsnummerA;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Returns a copy of an array of entities with versionsnummer, sorted in ascending order based on the versionsnummer.
|
|
42
|
+
* @param entities
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
const sortByVersionsnummerAsc = (entities) => {
|
|
46
|
+
return [...entities].sort(compareVersionsnummerAsc); // TODO ES2023 introduces toSorted() which sorts a copy of the array
|
|
47
|
+
};
|
|
48
|
+
exports.sortByVersionsnummerAsc = sortByVersionsnummerAsc;
|
|
49
|
+
const compareVersionsnummerAsc = (a, b) => {
|
|
50
|
+
const versionsnummerA = parseInt(a.versionsnummer, 10);
|
|
51
|
+
const versionsnummerB = parseInt(b.versionsnummer, 10);
|
|
52
|
+
if (isNaN(versionsnummerA))
|
|
53
|
+
return 1;
|
|
54
|
+
if (isNaN(versionsnummerB))
|
|
55
|
+
return -1;
|
|
56
|
+
return versionsnummerA - versionsnummerB;
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=versionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionUtils.js","sourceRoot":"","sources":["../../src/utils/versionUtils.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAqC,QAAa,EAAE,EAAE;IACrF,OAAO,IAAA,gCAAwB,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACjD,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B;AAED;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAqC,QAAa,EAAE,EAAE;IACrF,OAAO,IAAA,+BAAuB,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B;AAED;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,CAAqC,QAAa,EAAE,EAAE;IAC5F,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA,CAAC,oEAAoE;AAC3H,CAAC,CAAA;AAFY,QAAA,wBAAwB,4BAEpC;AAED,MAAM,yBAAyB,GAAG,CAAqC,CAAI,EAAE,CAAI,EAAE,EAAE;IACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAC,CAAA;IAErC,OAAO,eAAe,GAAG,eAAe,CAAA;AAC1C,CAAC,CAAA;AAED;;;;GAIG;AACI,MAAM,uBAAuB,GAAG,CAAqC,QAAa,EAAE,EAAE;IAC3F,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA,CAAC,oEAAoE;AAC1H,CAAC,CAAA;AAFY,QAAA,uBAAuB,2BAEnC;AAED,MAAM,wBAAwB,GAAG,CAAqC,CAAI,EAAE,CAAI,EAAE,EAAE;IAClF,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAC,CAAA;IAErC,OAAO,eAAe,GAAG,eAAe,CAAA;AAC1C,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kth/om-kursen-ladok-client",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.6",
|
|
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,8 +21,8 @@
|
|
|
21
21
|
"build:publish": "npm install --no-workspaces && npm run build"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@kth/ladok-attributvarde-utils": "0.1.
|
|
25
|
-
"@kth/ladok-mellanlager-client": "0.4.
|
|
24
|
+
"@kth/ladok-attributvarde-utils": "0.1.4",
|
|
25
|
+
"@kth/ladok-mellanlager-client": "0.4.3",
|
|
26
26
|
"date-fns": "^4.1.0",
|
|
27
27
|
"showdown": "^2.1.0"
|
|
28
28
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseInstans.js","sourceRoot":"","sources":["../src/mapCourseInstans.ts"],"names":[],"mappings":";;;AAAA,8EAAqF;AAGrF,uDAAkG;AAS3F,MAAM,wBAAwB,GAAG,CACtC,MAAmD,EACnD,QAAkB,EACI,EAAE;IACxB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IAEjC,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,IAAA,yCAAa,EAAC,cAAc,EAAE,sCAAsC,CAAC;QACzE,EAAE,EAAE,IAAA,yCAAa,EAAC,cAAc,EAAE,uCAAuC,CAAC;KAC3E,CAAA;IAED,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,cAAc,CAAC,CAAA;IAE5D,MAAM,GAAG,GAAG,IAAA,yCAAa,EAAC,cAAc,EAAE,yBAAyB,CAAC,CAAA;IAEpE,OAAO;QACL,GAAG,EAAE,GAAI;QACT,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAE;QAC/B,cAAc,EAAE,cAAc,IAAI,IAAA,sCAAuB,EAAC,cAAc,EAAE,QAAQ,CAAC;QACnF,qBAAqB,EAAE,MAAM,CAAC,GAAG;KAClC,CAAA;AACH,CAAC,CAAA;AArBY,QAAA,wBAAwB,4BAqBpC"}
|