@kth/om-kursen-ladok-client 1.2.4 → 1.3.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/README.md +1 -1
- package/dist/createApiClient.d.ts +2 -2
- package/dist/createApiClient.js +151 -98
- package/dist/createApiClient.js.map +1 -1
- package/dist/groupSearchResults.d.ts +3 -3
- package/dist/groupSearchResults.js +5 -8
- package/dist/groupSearchResults.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mapCourse.d.ts +3 -3
- package/dist/mapCourse.js +6 -6
- package/dist/mapCourse.js.map +1 -1
- package/dist/mapCourseInstans.js.map +1 -1
- package/dist/mapCourseRound.d.ts +3 -1
- package/dist/mapCourseRound.js +2 -1
- package/dist/mapCourseRound.js.map +1 -1
- package/dist/mapCourseSyllabus.d.ts +4 -4
- package/dist/mapCourseSyllabus.js +21 -29
- package/dist/mapCourseSyllabus.js.map +1 -1
- package/dist/mapExaminationModule.d.ts +4 -4
- package/dist/mapExaminationModule.js +6 -6
- package/dist/mapExaminationModule.js.map +1 -1
- package/dist/mapGradingScales.d.ts +1 -1
- package/dist/mapGradingScales.js +3 -3
- package/dist/mapGradingScales.js.map +1 -1
- package/dist/mapPartOfProgramme.d.ts +19 -0
- package/dist/mapPartOfProgramme.js +34 -0
- package/dist/mapPartOfProgramme.js.map +1 -0
- package/dist/mapProgramTerm.js +1 -1
- package/dist/mapProgramTerm.js.map +1 -1
- package/dist/mapProgramTillfalle.js.map +1 -1
- package/dist/mapSearchResult.d.ts +2 -2
- package/dist/mapSearchResult.js +11 -11
- package/dist/mapSearchResult.js.map +1 -1
- package/dist/mapStructureCourses.d.ts +3 -3
- package/dist/mapStructureCourses.js +3 -3
- package/dist/mapStructureCourses.js.map +1 -1
- package/dist/types/OmKursenLadokApiClient.d.ts +11 -10
- package/dist/utils/courseSyllabusUtil.d.ts +2 -2
- package/dist/utils/courseSyllabusUtil.js +4 -4
- package/dist/utils/courseSyllabusUtil.js.map +1 -1
- package/dist/utils/creditsUtil.d.ts +2 -2
- package/dist/utils/creditsUtil.js +6 -6
- package/dist/utils/creditsUtil.js.map +1 -1
- package/dist/utils/examinationModulesUtil.d.ts +4 -4
- package/dist/utils/examinationModulesUtil.js +8 -8
- package/dist/utils/examinationModulesUtil.js.map +1 -1
- package/dist/utils/gradingScalesUtils.d.ts +1 -1
- package/dist/utils/gradingScalesUtils.js +4 -4
- package/dist/utils/gradingScalesUtils.js.map +1 -1
- package/dist/utils/index.d.ts +4 -3
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/languageUtil.d.ts +3 -3
- package/dist/utils/languageUtil.js +1 -1
- package/dist/utils/languageUtil.js.map +1 -1
- package/dist/utils/partOfProgrammeUtil.d.ts +3 -0
- package/dist/utils/partOfProgrammeUtil.js +83 -0
- package/dist/utils/partOfProgrammeUtil.js.map +1 -0
- package/dist/utils/periodUtil.d.ts +6 -2
- package/dist/utils/periodUtil.js +22 -17
- package/dist/utils/periodUtil.js.map +1 -1
- package/dist/utils/programStrukturUtil.d.ts +3 -4
- package/dist/utils/programStrukturUtil.js +5 -8
- package/dist/utils/programStrukturUtil.js.map +1 -1
- package/dist/utils/schoolUtil.d.ts +1 -1
- package/dist/utils/schoolUtil.js +2 -4
- package/dist/utils/schoolUtil.js.map +1 -1
- package/dist/utils/studyYearUtil.d.ts +5 -3
- package/dist/utils/studyYearUtil.js +41 -8
- package/dist/utils/studyYearUtil.js.map +1 -1
- package/package.json +2 -2
|
@@ -4,7 +4,7 @@ exports.getSemester = void 0;
|
|
|
4
4
|
exports.getSyllabusForSemester = getSyllabusForSemester;
|
|
5
5
|
const periodUtil_1 = require("./periodUtil");
|
|
6
6
|
const getSemester = (dateStr) => {
|
|
7
|
-
const [yearStr, monthStr] = dateStr.split(
|
|
7
|
+
const [yearStr, monthStr] = dateStr.split('-');
|
|
8
8
|
const year = parseInt(yearStr, 10);
|
|
9
9
|
const month = parseInt(monthStr, 10);
|
|
10
10
|
if (month >= 1 && month <= 7) {
|
|
@@ -13,7 +13,7 @@ const getSemester = (dateStr) => {
|
|
|
13
13
|
else if (month >= 8 && month <= 12) {
|
|
14
14
|
return `HT${year}`;
|
|
15
15
|
}
|
|
16
|
-
throw new Error(
|
|
16
|
+
throw new Error('Invalid date format or value');
|
|
17
17
|
};
|
|
18
18
|
exports.getSemester = getSemester;
|
|
19
19
|
function sortSyllabuses(syllabuses) {
|
|
@@ -31,8 +31,8 @@ function sortSyllabuses(syllabuses) {
|
|
|
31
31
|
return versionB - versionA;
|
|
32
32
|
}
|
|
33
33
|
// Step 3: If same course version date, sort by latest syllabus version (descending)
|
|
34
|
-
const syllabusEditionA = a.AktuellaAttributvarden.find((Attributvarde) => Attributvarde.Attributdefinition.Kod ===
|
|
35
|
-
const syllabusEditionB = b.AktuellaAttributvarden.find((Attributvarde) => Attributvarde.Attributdefinition.Kod ===
|
|
34
|
+
const syllabusEditionA = a.AktuellaAttributvarden.find((Attributvarde) => Attributvarde.Attributdefinition.Kod === 'utbildning.lokalt.attribut.29.utgava').Varden[0];
|
|
35
|
+
const syllabusEditionB = b.AktuellaAttributvarden.find((Attributvarde) => Attributvarde.Attributdefinition.Kod === 'utbildning.lokalt.attribut.29.utgava').Varden[0];
|
|
36
36
|
if (parseInt(syllabusEditionA) !== parseInt(syllabusEditionB)) {
|
|
37
37
|
return parseInt(syllabusEditionB) - parseInt(syllabusEditionA);
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"courseSyllabusUtil.js","sourceRoot":"","sources":["../../src/utils/courseSyllabusUtil.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"courseSyllabusUtil.js","sourceRoot":"","sources":["../../src/utils/courseSyllabusUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Utbildningstyp } from
|
|
2
|
-
import { Language } from
|
|
1
|
+
import { Utbildningstyp } from '@kth/ladok-attributvarde-utils';
|
|
2
|
+
import { Language } from './languageUtil';
|
|
3
3
|
export declare const getCreditsUnit: (utbildningstyp: Utbildningstyp, language: Language) => string;
|
|
4
4
|
export declare const formatCreditsWithUnitLabel: (omfattning: string, utbildningstyp: Utbildningstyp | undefined, language: Language) => string;
|
|
@@ -3,19 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.formatCreditsWithUnitLabel = exports.getCreditsUnit = void 0;
|
|
4
4
|
const getCreditsUnit = (utbildningstyp, language) => {
|
|
5
5
|
switch (utbildningstyp.creditsUnit.code) {
|
|
6
|
-
case
|
|
7
|
-
return language ===
|
|
8
|
-
case
|
|
9
|
-
return
|
|
6
|
+
case 'HP':
|
|
7
|
+
return language === 'sv' ? 'hp' : 'credits';
|
|
8
|
+
case 'FUP':
|
|
9
|
+
return 'fup';
|
|
10
10
|
default:
|
|
11
11
|
return utbildningstyp.creditsUnit.code.toLocaleLowerCase();
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
exports.getCreditsUnit = getCreditsUnit;
|
|
15
|
-
const formatCredits = (omfattning, language) => language ===
|
|
15
|
+
const formatCredits = (omfattning, language) => language === 'sv' ? omfattning.replace('.', ',') : omfattning;
|
|
16
16
|
const formatCreditsWithUnitLabel = (omfattning, utbildningstyp, language) => {
|
|
17
17
|
const credits = formatCredits(omfattning, language);
|
|
18
|
-
const unit = utbildningstyp ? (0, exports.getCreditsUnit)(utbildningstyp, language) :
|
|
18
|
+
const unit = utbildningstyp ? (0, exports.getCreditsUnit)(utbildningstyp, language) : '';
|
|
19
19
|
return `${credits} ${unit}`;
|
|
20
20
|
};
|
|
21
21
|
exports.formatCreditsWithUnitLabel = formatCreditsWithUnitLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creditsUtil.js","sourceRoot":"","sources":["../../src/utils/creditsUtil.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,cAA8B,EAAE,QAAkB,EAAE,EAAE;IACnF,QAAQ,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,IAAI;YACP,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"creditsUtil.js","sourceRoot":"","sources":["../../src/utils/creditsUtil.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,cAA8B,EAAE,QAAkB,EAAE,EAAE;IACnF,QAAQ,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,IAAI;YACP,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7C,KAAK,KAAK;YACR,OAAO,KAAK,CAAA;QACd;YACE,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC9D,CAAC;AACH,CAAC,CAAA;AATY,QAAA,cAAc,kBAS1B;AAED,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,QAAkB,EAAE,EAAE,CAC/D,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAExD,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EAClB,cAA0C,EAC1C,QAAkB,EAClB,EAAE;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3E,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAA;AAC7B,CAAC,CAAA;AARY,QAAA,0BAA0B,8BAQtC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LadokMellanlagerApiClient } from
|
|
2
|
-
import { ExaminationModule } from
|
|
3
|
-
import { Language } from
|
|
1
|
+
import { LadokMellanlagerApiClient } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { ExaminationModule } from '../mapExaminationModule';
|
|
3
|
+
import { Language } from './languageUtil';
|
|
4
4
|
export declare const handleError: (message: string, error?: any) => {
|
|
5
5
|
error: string;
|
|
6
6
|
details: any;
|
|
@@ -9,6 +9,6 @@ export declare const formatExaminationTitles: (examinationModules: (ExaminationM
|
|
|
9
9
|
completeExaminationStrings: string[];
|
|
10
10
|
titles: string[];
|
|
11
11
|
};
|
|
12
|
-
export declare const fetchStructure: (uid: string, ladokClient: LadokMellanlagerApiClient) => Promise<import("@kth/ladok-mellanlager-client
|
|
12
|
+
export declare const fetchStructure: (uid: string, ladokClient: LadokMellanlagerApiClient) => Promise<import("@kth/ladok-mellanlager-client").Strukturdel[]>;
|
|
13
13
|
export declare const fetchModules: (utbildningsbasUIDn: string[], ladokClient: LadokMellanlagerApiClient) => Promise<(import("@kth/ladok-mellanlager-client").UtbildningsinstansSlim | undefined)[]>;
|
|
14
14
|
export declare const getExaminationModules: (utbildningsinstansUID: string, language: Language, ladokClient: LadokMellanlagerApiClient) => Promise<(ExaminationModule | undefined)[]>;
|
|
@@ -14,7 +14,7 @@ const mapExaminationModule_1 = require("../mapExaminationModule");
|
|
|
14
14
|
const gradingScalesUtils_1 = require("./gradingScalesUtils");
|
|
15
15
|
const handleError = (message, error) => {
|
|
16
16
|
console.error(message, error);
|
|
17
|
-
return { error: message, details: (error === null || error === void 0 ? void 0 : error.message) ||
|
|
17
|
+
return { error: message, details: (error === null || error === void 0 ? void 0 : error.message) || 'Unknown error' };
|
|
18
18
|
};
|
|
19
19
|
exports.handleError = handleError;
|
|
20
20
|
const formatExaminationTitles = (examinationModules, language) => {
|
|
@@ -38,7 +38,7 @@ const fetchStructure = (uid, ladokClient) => __awaiter(void 0, void 0, void 0, f
|
|
|
38
38
|
return ((_a = struktur === null || struktur === void 0 ? void 0 : struktur.data) === null || _a === void 0 ? void 0 : _a.Strukturdelar) || [];
|
|
39
39
|
}
|
|
40
40
|
catch (error) {
|
|
41
|
-
throw (0, exports.handleError)(
|
|
41
|
+
throw (0, exports.handleError)('Failed to fetch structure', error);
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
exports.fetchStructure = fetchStructure;
|
|
@@ -47,7 +47,7 @@ const fetchModules = (utbildningsbasUIDn, ladokClient) => __awaiter(void 0, void
|
|
|
47
47
|
const moduler = yield Promise.all(utbildningsbasUIDn.map((utbildningsbasUID) => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
48
|
try {
|
|
49
49
|
const utbildningsinstans = yield ladokClient.utbildningsinstansSlim(utbildningsbasUID, {
|
|
50
|
-
attributVarden:
|
|
50
|
+
attributVarden: 'utbildning.attribut.kod,utbildning.attribut.svensk.benamning,utbildning.attribut.engelsk.benamning,utbildning.attribut.betygsskala,utbildning.attribut.giltig.from,utbildning.attribut.omfattning,utbildningstyp',
|
|
51
51
|
});
|
|
52
52
|
return utbildningsinstans.data;
|
|
53
53
|
}
|
|
@@ -55,26 +55,26 @@ const fetchModules = (utbildningsbasUIDn, ladokClient) => __awaiter(void 0, void
|
|
|
55
55
|
throw (0, exports.handleError)(`Error fetching module for utbildningsbasUID ${utbildningsbasUID}:`, error);
|
|
56
56
|
}
|
|
57
57
|
})));
|
|
58
|
-
return moduler.filter(
|
|
58
|
+
return moduler.filter(module => module !== null);
|
|
59
59
|
}
|
|
60
60
|
catch (error) {
|
|
61
|
-
throw (0, exports.handleError)(
|
|
61
|
+
throw (0, exports.handleError)('Failed to fetch modules', error);
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
exports.fetchModules = fetchModules;
|
|
65
65
|
const getExaminationModules = (utbildningsinstansUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
66
|
try {
|
|
67
67
|
const strukturDelar = yield (0, exports.fetchStructure)(utbildningsinstansUID, ladokClient);
|
|
68
|
-
const utbildningsbasUIDn = strukturDelar.map(
|
|
68
|
+
const utbildningsbasUIDn = strukturDelar.map(strukturdel => strukturdel.UtbildningsbasUID);
|
|
69
69
|
const examinationModules = yield (0, exports.fetchModules)(utbildningsbasUIDn, ladokClient);
|
|
70
70
|
const gradingScalesCodes = yield (0, gradingScalesUtils_1.getGradingScalesCodes)(ladokClient);
|
|
71
|
-
const mappedExaminationModules = examinationModules.map(
|
|
71
|
+
const mappedExaminationModules = examinationModules.map(m => {
|
|
72
72
|
return m && (0, mapExaminationModule_1.mapExaminationModule)(m, language, gradingScalesCodes);
|
|
73
73
|
});
|
|
74
74
|
return mappedExaminationModules;
|
|
75
75
|
}
|
|
76
76
|
catch (error) {
|
|
77
|
-
throw (0, exports.handleError)(
|
|
77
|
+
throw (0, exports.handleError)('Unexpected error during processing', error);
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
exports.getExaminationModules = getExaminationModules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"examinationModulesUtil.js","sourceRoot":"","sources":["../../src/utils/examinationModulesUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"examinationModulesUtil.js","sourceRoot":"","sources":["../../src/utils/examinationModulesUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ exports.getGradingScalesCodes = exports.getGradingScales = exports.fetchGradingS
|
|
|
13
13
|
const mapGradingScales_1 = require("../mapGradingScales");
|
|
14
14
|
const handleError = (message, error) => {
|
|
15
15
|
console.error(message, error);
|
|
16
|
-
return { error: message, details: (error === null || error === void 0 ? void 0 : error.message) ||
|
|
16
|
+
return { error: message, details: (error === null || error === void 0 ? void 0 : error.message) || 'Unknown error' };
|
|
17
17
|
};
|
|
18
18
|
exports.handleError = handleError;
|
|
19
19
|
const fetchGradingScales = (ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -23,7 +23,7 @@ const fetchGradingScales = (ladokClient) => __awaiter(void 0, void 0, void 0, fu
|
|
|
23
23
|
return ((_a = gradingScales === null || gradingScales === void 0 ? void 0 : gradingScales.data) === null || _a === void 0 ? void 0 : _a.Betygsskala) || [];
|
|
24
24
|
}
|
|
25
25
|
catch (error) {
|
|
26
|
-
throw (0, exports.handleError)(
|
|
26
|
+
throw (0, exports.handleError)('Failed to fetch grading scales', error);
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
exports.fetchGradingScales = fetchGradingScales;
|
|
@@ -34,7 +34,7 @@ const getGradingScales = (ladokClient) => __awaiter(void 0, void 0, void 0, func
|
|
|
34
34
|
return mappedGradingScales;
|
|
35
35
|
}
|
|
36
36
|
catch (error) {
|
|
37
|
-
throw (0, exports.handleError)(
|
|
37
|
+
throw (0, exports.handleError)('Unexpected error during processing', error);
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
40
|
exports.getGradingScales = getGradingScales;
|
|
@@ -45,7 +45,7 @@ const getGradingScalesCodes = (ladokClient) => __awaiter(void 0, void 0, void 0,
|
|
|
45
45
|
return mappedGradingScalesCodes;
|
|
46
46
|
}
|
|
47
47
|
catch (error) {
|
|
48
|
-
throw (0, exports.handleError)(
|
|
48
|
+
throw (0, exports.handleError)('Unexpected error during processing', error);
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
exports.getGradingScalesCodes = getGradingScalesCodes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradingScalesUtils.js","sourceRoot":"","sources":["../../src/utils/gradingScalesUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"gradingScalesUtils.js","sourceRoot":"","sources":["../../src/utils/gradingScalesUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,0DAA6E;AAEtE,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAW,EAAE,EAAE;IAC1D,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,eAAe,EAAE,CAAA;AACvE,CAAC,CAAA;AAHY,QAAA,WAAW,eAGvB;AAEM,MAAM,kBAAkB,GAAG,CAAO,WAAsC,EAAE,EAAE;;IACjF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAA;QACrD,OAAO,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,0CAAE,WAAW,KAAI,EAAE,CAAA;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,mBAAW,EAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC,CAAA,CAAA;AAPY,QAAA,kBAAkB,sBAO9B;AAEM,MAAM,gBAAgB,GAAG,CAAO,WAAsC,EAAE,EAAE;IAC/E,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAkB,EAAC,WAAW,CAAC,CAAA;QAC3D,MAAM,mBAAmB,GAAG,IAAA,mCAAgB,EAAC,aAAa,CAAC,CAAA;QAC3D,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,mBAAW,EAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;IAChE,CAAC;AACH,CAAC,CAAA,CAAA;AARY,QAAA,gBAAgB,oBAQ5B;AAEM,MAAM,qBAAqB,GAAG,CAAO,WAAsC,EAAE,EAAE;IACpF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAkB,EAAC,WAAW,CAAC,CAAA;QAC3D,MAAM,wBAAwB,GAAG,IAAA,wCAAqB,EAAC,aAAa,CAAC,CAAA;QACrE,OAAO,wBAAwB,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,mBAAW,EAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;IAChE,CAAC;AACH,CAAC,CAAA,CAAA;AARY,QAAA,qBAAqB,yBAQjC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
1
|
+
export * from './dateUtil';
|
|
2
|
+
export * from './languageUtil';
|
|
3
|
+
export * from './periodUtil';
|
|
4
|
+
export * from './studyYearUtil';
|
package/dist/utils/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./dateUtil"), exports);
|
|
18
18
|
__exportStar(require("./languageUtil"), exports);
|
|
19
19
|
__exportStar(require("./periodUtil"), exports);
|
|
20
|
+
__exportStar(require("./studyYearUtil"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,iDAA8B;AAC9B,+CAA4B;AAC5B,kDAA+B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Grunddata, Organisation, Studietakt, Tilltradesniva, Utbildningstyp } from
|
|
2
|
-
export type Language =
|
|
1
|
+
import { Grunddata, Organisation, Studietakt, Tilltradesniva, Utbildningstyp } from '@kth/ladok-attributvarde-utils';
|
|
2
|
+
export type Language = 'sv' | 'en';
|
|
3
3
|
export interface TranslatedGrunddata {
|
|
4
4
|
id: string;
|
|
5
5
|
code: string;
|
|
@@ -27,7 +27,7 @@ export interface TranslatedTilltradesniva extends TranslatedGrunddata {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
export interface TranslatedStudietakt extends TranslatedGrunddata {
|
|
30
|
-
takt: Studietakt[
|
|
30
|
+
takt: Studietakt['takt'];
|
|
31
31
|
}
|
|
32
32
|
export declare const translateGrunddata: (grunddata: Grunddata, language: Language) => TranslatedGrunddata;
|
|
33
33
|
export declare const translateOrganisation: (organisation: Organisation, language: Language) => TranslatedOrganisation;
|
|
@@ -18,7 +18,7 @@ const translateGrunddata = (grunddata, language) => {
|
|
|
18
18
|
id,
|
|
19
19
|
code,
|
|
20
20
|
name: rest[language],
|
|
21
|
-
nameOther: rest[language ===
|
|
21
|
+
nameOther: rest[language === 'sv' ? 'en' : 'sv'],
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
exports.translateGrunddata = translateGrunddata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageUtil.js","sourceRoot":"","sources":["../../src/utils/languageUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"languageUtil.js","sourceRoot":"","sources":["../../src/utils/languageUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAsCO,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,QAAkB,EAAuB,EAAE;IAClG,MAAM,EAAE,EAAE,EAAE,IAAI,KAAc,SAAS,EAAlB,IAAI,UAAK,SAAS,EAAjC,cAAqB,CAAY,CAAA;IACvC,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;QACpB,SAAS,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;KACjD,CAAA;AACH,CAAC,CAAA;AARY,QAAA,kBAAkB,sBAQ9B;AAEM,MAAM,qBAAqB,GAAG,CAAC,YAA0B,EAAE,QAAkB,EAA0B,EAAE;IAC9G,uCACK,IAAA,0BAAkB,EAAC,YAAY,EAAE,QAAQ,CAAC,KAC7C,oBAAoB,EAAE,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAC9D;AACH,CAAC,CAAA;AALY,QAAA,qBAAqB,yBAKjC;AAEM,MAAM,uBAAuB,GAAG,CACrC,cAA8B,EAC9B,QAAkB,EACQ,EAAE;IAC5B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,WAAW,CAAA;IAC7C,MAAM,KAAoB,cAAc,CAAC,KAAK,EAAxC,EAAE,IAAI,OAAkC,EAA7B,IAAI,cAAf,QAAiB,CAAuB,CAAA;IAC9C,uCACK,IAAA,0BAAkB,EAAC,cAAc,EAAE,QAAQ,CAAC,KAC/C,WAAW,EAAE;YACX,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI;YACrC,EAAE;YACF,EAAE;SACH,EACD,KAAK,EAAE;YACL,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;SACrB,IACF;AACH,CAAC,CAAA;AAlBY,QAAA,uBAAuB,2BAkBnC;AAEM,MAAM,wBAAwB,GAAG,CACtC,cAA8B,EAC9B,QAAkB,EACQ,EAAE;IAC5B,MAAM,KAAoB,cAAc,CAAC,KAAK,EAAxC,EAAE,IAAI,OAAkC,EAA7B,IAAI,cAAf,QAAiB,CAAuB,CAAA;IAC9C,uCACK,IAAA,0BAAkB,EAAC,cAAc,EAAE,QAAQ,CAAC,KAC/C,KAAK,EAAE;YACL,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;SACrB,IACF;AACH,CAAC,CAAA;AAZY,QAAA,wBAAwB,4BAYpC;AAEM,MAAM,mBAAmB,GAAG,CAAC,UAAsB,EAAE,QAAkB,EAAwB,EAAE;IACtG,uCACK,IAAA,0BAAkB,EAAC,UAAU,EAAE,QAAQ,CAAC,KAC3C,IAAI,EAAE,UAAU,CAAC,IAAI,IACtB;AACH,CAAC,CAAA;AALY,QAAA,mBAAmB,uBAK/B"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LadokMellanlagerApiClient, PeriodItem, SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { PartOfProgramme } from '../mapPartOfProgramme';
|
|
3
|
+
export declare const getPartOfProgrammes: (courseInstances: SokUtbildningsTillfalleItem[] | SokUtbildningsTillfalleSlimItem[], periodItems: PeriodItem[], ladokClient: LadokMellanlagerApiClient) => Promise<Record<string, PartOfProgramme[]>>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getPartOfProgrammes = void 0;
|
|
13
|
+
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
14
|
+
const mapPartOfProgramme_1 = require("../mapPartOfProgramme");
|
|
15
|
+
const studyYearUtil_1 = require("./studyYearUtil");
|
|
16
|
+
var EDUCATIONAL_TYPE;
|
|
17
|
+
(function (EDUCATIONAL_TYPE) {
|
|
18
|
+
EDUCATIONAL_TYPE[EDUCATIONAL_TYPE["Programme"] = 94] = "Programme";
|
|
19
|
+
EDUCATIONAL_TYPE[EDUCATIONAL_TYPE["Specialisation"] = 101290] = "Specialisation";
|
|
20
|
+
})(EDUCATIONAL_TYPE || (EDUCATIONAL_TYPE = {}));
|
|
21
|
+
const extractUIDsByEducationType = (structureRefs, educationTypeID) => structureRefs.filter(x => x.UtbildningstypID === educationTypeID).map(x => x.UtbildningsattributbasUID);
|
|
22
|
+
const fetchEducationalInstances = (utbildningsTillfalleUIDs, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
const results = yield Promise.all(utbildningsTillfalleUIDs.map((uid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
const instance = (_a = (yield ladokClient.utbildningstillfalleSlim(uid, {
|
|
26
|
+
attributVarden: 'utbildningsinstans.uid',
|
|
27
|
+
})).data) === null || _a === void 0 ? void 0 : _a.Attributvarden;
|
|
28
|
+
const instanceUID = (0, ladok_attributvarde_utils_1.extractString)(instance || [], 'utbildningsinstans.uid');
|
|
29
|
+
if (!instanceUID)
|
|
30
|
+
return null;
|
|
31
|
+
const instanceItem = (_b = (yield ladokClient.sokUtbildningsTillfalleSlim({
|
|
32
|
+
utbildningsinstansUid: instanceUID,
|
|
33
|
+
attributVarden: 'utbildningstyp',
|
|
34
|
+
})).items) === null || _b === void 0 ? void 0 : _b.find(x => x.tillfalle_uid === uid);
|
|
35
|
+
return instanceItem !== null && instanceItem !== void 0 ? instanceItem : null;
|
|
36
|
+
})));
|
|
37
|
+
return results.filter((item) => Boolean(item));
|
|
38
|
+
});
|
|
39
|
+
const processProgrammes = (programmeInstances, courseInstance, periodItems, ladokClient, specialisationInstance) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
return (yield Promise.all(programmeInstances.map((programmeInstance) => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
if (!programmeInstance)
|
|
43
|
+
return [];
|
|
44
|
+
const structure = yield ladokClient.utbildningstillfalleStruktur((_a = specialisationInstance === null || specialisationInstance === void 0 ? void 0 : specialisationInstance.tillfalle_uid) !== null && _a !== void 0 ? _a : programmeInstance.tillfalle_uid);
|
|
45
|
+
const structureItemCourse = (_b = structure === null || structure === void 0 ? void 0 : structure.data) === null || _b === void 0 ? void 0 : _b.Strukturdelar.find(x => x.UtbildningsbasUID === courseInstance.tillfalle_uid);
|
|
46
|
+
if (!structureItemCourse)
|
|
47
|
+
return [];
|
|
48
|
+
const studyYears = (0, studyYearUtil_1.extractStudyYears)(courseInstance, programmeInstance, periodItems);
|
|
49
|
+
return studyYears.map(studyYear => (0, mapPartOfProgramme_1.mapPartOfProgramme)(programmeInstance, structureItemCourse, studyYear, specialisationInstance));
|
|
50
|
+
})))).flat();
|
|
51
|
+
});
|
|
52
|
+
const processSpecialisations = (specialisationInstances, courseInstance, periodItems, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
+
return (yield Promise.all(specialisationInstances.map((specialisationInstance) => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
+
var _a;
|
|
55
|
+
if (!specialisationInstance)
|
|
56
|
+
return [];
|
|
57
|
+
const structureRefs = ((_a = (yield ladokClient.strukturListaInnehaller(specialisationInstance.tillfalle_uid)).data) === null || _a === void 0 ? void 0 : _a.Strukturreferenser) ||
|
|
58
|
+
[];
|
|
59
|
+
const [firstProgrammeInstanceUID] = extractUIDsByEducationType(structureRefs, EDUCATIONAL_TYPE.Programme);
|
|
60
|
+
const programmeInstances = yield fetchEducationalInstances([firstProgrammeInstanceUID], ladokClient);
|
|
61
|
+
return processProgrammes(programmeInstances, courseInstance, periodItems, ladokClient, specialisationInstance);
|
|
62
|
+
})))).flat();
|
|
63
|
+
});
|
|
64
|
+
const getPartOfProgramme = (courseInstance, periodItems, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
var _a;
|
|
66
|
+
const structureRefs = ((_a = (yield ladokClient.strukturListaInnehaller(courseInstance.tillfalle_uid)).data) === null || _a === void 0 ? void 0 : _a.Strukturreferenser) || [];
|
|
67
|
+
const specialisationInstanceUIDs = extractUIDsByEducationType(structureRefs, EDUCATIONAL_TYPE.Specialisation);
|
|
68
|
+
const programmeInstanceUIDs = extractUIDsByEducationType(structureRefs, EDUCATIONAL_TYPE.Programme);
|
|
69
|
+
const specialisationInstances = (yield fetchEducationalInstances(specialisationInstanceUIDs, ladokClient)) || [];
|
|
70
|
+
const programmeInstances = (yield fetchEducationalInstances(programmeInstanceUIDs, ladokClient)) || [];
|
|
71
|
+
const specialisationParts = yield processSpecialisations(specialisationInstances, courseInstance, periodItems, ladokClient);
|
|
72
|
+
const programmeParts = yield processProgrammes(programmeInstances, courseInstance, periodItems, ladokClient);
|
|
73
|
+
return [...specialisationParts, ...programmeParts];
|
|
74
|
+
});
|
|
75
|
+
const getPartOfProgrammes = (courseInstances, periodItems, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
76
|
+
const partOfProgrammes = {};
|
|
77
|
+
yield Promise.all(courseInstances.map((courseInstance) => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
+
partOfProgrammes[courseInstance.tillfalle_uid] = yield getPartOfProgramme(courseInstance, periodItems, ladokClient);
|
|
79
|
+
})));
|
|
80
|
+
return partOfProgrammes;
|
|
81
|
+
});
|
|
82
|
+
exports.getPartOfProgrammes = getPartOfProgrammes;
|
|
83
|
+
//# sourceMappingURL=partOfProgrammeUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partOfProgrammeUtil.js","sourceRoot":"","sources":["../../src/utils/partOfProgrammeUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAA8D;AAQ9D,8DAA2E;AAC3E,mDAAmD;AAEnD,IAAK,gBAGJ;AAHD,WAAK,gBAAgB;IACnB,kEAAc,CAAA;IACd,gFAAuB,CAAA;AACzB,CAAC,EAHI,gBAAgB,KAAhB,gBAAgB,QAGpB;AAED,MAAM,0BAA0B,GAAG,CAAC,aAAiC,EAAE,eAAiC,EAAE,EAAE,CAC1G,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAA;AAEzG,MAAM,yBAAyB,GAAG,CAChC,wBAAkC,EAClC,WAAsC,EACtC,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,wBAAwB,CAAC,GAAG,CAAC,CAAM,GAAG,EAAC,EAAE;;QACvC,MAAM,QAAQ,GAAG,MAAA,CACf,MAAM,WAAW,CAAC,wBAAwB,CAAC,GAAG,EAAE;YAC9C,cAAc,EAAE,wBAAwB;SACzC,CAAC,CACH,CAAC,IAAI,0CAAE,cAAc,CAAA;QAEtB,MAAM,WAAW,GAAG,IAAA,yCAAa,EAAC,QAAQ,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAA;QAC3E,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAE7B,MAAM,YAAY,GAAG,MAAA,CACnB,MAAM,WAAW,CAAC,2BAA2B,CAAC;YAC5C,qBAAqB,EAAE,WAAW;YAClC,cAAc,EAAE,gBAAgB;SACjC,CAAC,CACH,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,GAAG,CAAC,CAAA;QAE3C,OAAO,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,CAAA;IAC7B,CAAC,CAAA,CAAC,CACH,CAAA;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAA2C,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AACzF,CAAC,CAAA,CAAA;AAED,MAAM,iBAAiB,GAAG,CACxB,kBAAqF,EACrF,cAA6E,EAC7E,WAAyB,EACzB,WAAsC,EACtC,sBAAsF,EACtF,EAAE;IACF,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,kBAAkB,CAAC,GAAG,CAAC,CAAM,iBAAiB,EAAC,EAAE;;QAC/C,IAAI,CAAC,iBAAiB;YAAE,OAAO,EAAE,CAAA;QAEjC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAC9D,MAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,aAAa,mCAAI,iBAAiB,CAAC,aAAa,CACzE,CAAA;QAED,MAAM,mBAAmB,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,aAAa,CAAC,IAAI,CAC7D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,cAAc,CAAC,aAAa,CAC1D,CAAA;QAED,IAAI,CAAC,mBAAmB;YAAE,OAAO,EAAE,CAAA;QAEnC,MAAM,UAAU,GAAG,IAAA,iCAAiB,EAAC,cAAc,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAA;QAEpF,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAChC,IAAA,uCAAkB,EAAC,iBAAiB,EAAE,mBAAmB,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAC9F,CAAA;IACH,CAAC,CAAA,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAA;AACV,CAAC,CAAA,CAAA;AAED,MAAM,sBAAsB,GAAG,CAC7B,uBAA0F,EAC1F,cAA6E,EAC7E,WAAyB,EACzB,WAAsC,EACtC,EAAE;IACF,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,uBAAuB,CAAC,GAAG,CAAC,CAAM,sBAAsB,EAAC,EAAE;;QACzD,IAAI,CAAC,sBAAsB;YAAE,OAAO,EAAE,CAAA;QAEtC,MAAM,aAAa,GACjB,CAAA,MAAA,CAAC,MAAM,WAAW,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,0CAAE,kBAAkB;YAC1G,EAAE,CAAA;QACJ,MAAM,CAAC,yBAAyB,CAAC,GAAG,0BAA0B,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAEzG,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC,CAAC,yBAAyB,CAAC,EAAE,WAAW,CAAC,CAAA;QAEpG,OAAO,iBAAiB,CAAC,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAA;IAChH,CAAC,CAAA,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAA;AACV,CAAC,CAAA,CAAA;AAED,MAAM,kBAAkB,GAAG,CACzB,cAA6E,EAC7E,WAAyB,EACzB,WAAsC,EACtC,EAAE;;IACF,MAAM,aAAa,GACjB,CAAA,MAAA,CAAC,MAAM,WAAW,CAAC,uBAAuB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,0CAAE,kBAAkB,KAAI,EAAE,CAAA;IAE1G,MAAM,0BAA0B,GAAG,0BAA0B,CAAC,aAAa,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAC7G,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAEnG,MAAM,uBAAuB,GAAG,CAAC,MAAM,yBAAyB,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;IAChH,MAAM,kBAAkB,GAAG,CAAC,MAAM,yBAAyB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;IAEtG,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CACtD,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,WAAW,CACZ,CAAA;IACD,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IAE5G,OAAO,CAAC,GAAG,mBAAmB,EAAE,GAAG,cAAc,CAAC,CAAA;AACpD,CAAC,CAAA,CAAA;AAEM,MAAM,mBAAmB,GAAG,CACjC,eAAkF,EAClF,WAAyB,EACzB,WAAsC,EACtC,EAAE;IACF,MAAM,gBAAgB,GAAsC,EAAE,CAAA;IAE9D,MAAM,OAAO,CAAC,GAAG,CACf,eAAe,CAAC,GAAG,CAAC,CAAM,cAAc,EAAC,EAAE;QACzC,gBAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,MAAM,kBAAkB,CACvE,cAAc,EACd,WAAW,EACX,WAAW,CACZ,CAAA;IACH,CAAC,CAAA,CAAC,CACH,CAAA;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA,CAAA;AAlBY,QAAA,mBAAmB,uBAkB/B"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { PeriodItem } from
|
|
2
|
-
import { ProgramInstans } from
|
|
1
|
+
import { PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { ProgramInstans } from '../mapProgramInstans';
|
|
3
|
+
export declare const parsePeriod: (period: string) => {
|
|
4
|
+
semester: string;
|
|
5
|
+
year: number;
|
|
6
|
+
} | null;
|
|
3
7
|
export declare const transformPeriodInDigits: (period: string) => string | null;
|
|
4
8
|
export declare const transformDigitsInPeriod: (period: string) => string;
|
|
5
9
|
export declare const findValidProgramForCode: (code: string, periods: PeriodItem[], programs: ProgramInstans[]) => ProgramInstans | undefined;
|
package/dist/utils/periodUtil.js
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getKthStudyPeriod = exports.getPeriodCodeForDate = exports.findValidProgramForCode = exports.transformDigitsInPeriod = exports.transformPeriodInDigits = void 0;
|
|
3
|
+
exports.getKthStudyPeriod = exports.getPeriodCodeForDate = exports.findValidProgramForCode = exports.transformDigitsInPeriod = exports.transformPeriodInDigits = exports.parsePeriod = void 0;
|
|
4
|
+
const parsePeriod = (period) => {
|
|
5
|
+
const match = period.match(/(VT|HT)(\d{4})/);
|
|
6
|
+
if (!match) {
|
|
7
|
+
console.warn('Unable to parse period due to invalid period format: ', period);
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return { semester: match[1], year: Number(match[2]) };
|
|
11
|
+
};
|
|
12
|
+
exports.parsePeriod = parsePeriod;
|
|
4
13
|
const transformPeriodInDigits = (period) => {
|
|
5
|
-
const validPrefixes = [
|
|
14
|
+
const validPrefixes = ['HT', 'VT'];
|
|
6
15
|
if (validPrefixes.includes(period.slice(0, 2)) && period.length > 2) {
|
|
7
|
-
const suffix = period.startsWith(
|
|
16
|
+
const suffix = period.startsWith('HT') ? '2' : '1';
|
|
8
17
|
const year = period.slice(2);
|
|
9
18
|
return year + suffix;
|
|
10
19
|
}
|
|
@@ -13,7 +22,7 @@ const transformPeriodInDigits = (period) => {
|
|
|
13
22
|
exports.transformPeriodInDigits = transformPeriodInDigits;
|
|
14
23
|
const transformDigitsInPeriod = (period) => {
|
|
15
24
|
const year = period.slice(0, 4);
|
|
16
|
-
const semester = period.slice(4) ===
|
|
25
|
+
const semester = period.slice(4) === '1' ? 'VT' : 'HT';
|
|
17
26
|
return `${semester}${year}`;
|
|
18
27
|
};
|
|
19
28
|
exports.transformDigitsInPeriod = transformDigitsInPeriod;
|
|
@@ -46,7 +55,7 @@ const getPeriodCodeForDate = (date) => {
|
|
|
46
55
|
const JULY = 6;
|
|
47
56
|
const year = date.getFullYear();
|
|
48
57
|
const month = date.getMonth();
|
|
49
|
-
const semester = month < JULY ?
|
|
58
|
+
const semester = month < JULY ? 'VT' : 'HT';
|
|
50
59
|
return `${semester}${year}`;
|
|
51
60
|
};
|
|
52
61
|
exports.getPeriodCodeForDate = getPeriodCodeForDate;
|
|
@@ -56,25 +65,21 @@ const getKthStudyPeriod = (date, startPeriod, type) => {
|
|
|
56
65
|
const day = date.getDate();
|
|
57
66
|
if (!startPeriod.code || !startPeriod.startDate || !startPeriod.endDate)
|
|
58
67
|
return undefined;
|
|
59
|
-
if (type ===
|
|
60
|
-
if (startPeriod.code.startsWith(
|
|
68
|
+
if (type === 'start') {
|
|
69
|
+
if (startPeriod.code.startsWith('HT') && date < startPeriod.startDate)
|
|
61
70
|
return 0;
|
|
62
|
-
if (startPeriod.code.startsWith(
|
|
63
|
-
date >= startPeriod.startDate &&
|
|
64
|
-
month <= 9)
|
|
71
|
+
if (startPeriod.code.startsWith('HT') && date >= startPeriod.startDate && month <= 9)
|
|
65
72
|
return 1;
|
|
66
|
-
if (startPeriod.code.startsWith(
|
|
73
|
+
if (startPeriod.code.startsWith('HT') && date <= startPeriod.endDate)
|
|
67
74
|
return 2;
|
|
68
|
-
if (startPeriod.code.startsWith(
|
|
69
|
-
date >= startPeriod.startDate &&
|
|
70
|
-
month <= 2)
|
|
75
|
+
if (startPeriod.code.startsWith('VT') && date >= startPeriod.startDate && month <= 2)
|
|
71
76
|
return 3;
|
|
72
|
-
if (startPeriod.code.startsWith(
|
|
77
|
+
if (startPeriod.code.startsWith('VT') && date <= startPeriod.endDate)
|
|
73
78
|
return 4;
|
|
74
|
-
if (startPeriod.code.startsWith(
|
|
79
|
+
if (startPeriod.code.startsWith('VT') && date > startPeriod.endDate)
|
|
75
80
|
return 5;
|
|
76
81
|
}
|
|
77
|
-
else if (type ===
|
|
82
|
+
else if (type === 'end') {
|
|
78
83
|
if ((month == 7 && day > 15) || month == 8)
|
|
79
84
|
return 0;
|
|
80
85
|
if (month >= 9 && month <= 11)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"periodUtil.js","sourceRoot":"","sources":["../../src/utils/periodUtil.ts"],"names":[],"mappings":";;;AAGO,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAE,EAAE;IACxD,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"periodUtil.js","sourceRoot":"","sources":["../../src/utils/periodUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { LadokMellanlagerApiClient } from '@kth/ladok-mellanlager-client';
|
|
1
|
+
import { LadokMellanlagerApiClient, Strukturdel } from '@kth/ladok-mellanlager-client';
|
|
2
2
|
import { Language } from './languageUtil';
|
|
3
3
|
import { StructurePartInstance } from '../mapStructureCourses';
|
|
4
|
-
import { Strukturdel } from '@kth/ladok-mellanlager-client/dist/types/endpoints/utbildningsinstansStruktur';
|
|
5
4
|
export declare const handleError: (message: string, error?: any) => {
|
|
6
5
|
error: string;
|
|
7
6
|
details: any;
|
|
@@ -52,7 +51,7 @@ export declare const fetchProgramStructure: (utbildningstillfalleUID: string, la
|
|
|
52
51
|
};
|
|
53
52
|
startperiod?: {
|
|
54
53
|
code: string;
|
|
55
|
-
}
|
|
54
|
+
};
|
|
56
55
|
Tillfallesperioder: {
|
|
57
56
|
SistaUndervisningsdatum: string;
|
|
58
57
|
}[];
|
|
@@ -77,7 +76,7 @@ export declare const fetchProgramStructure: (utbildningstillfalleUID: string, la
|
|
|
77
76
|
};
|
|
78
77
|
startperiod?: {
|
|
79
78
|
code: string;
|
|
80
|
-
}
|
|
79
|
+
};
|
|
81
80
|
Tillfallesperioder: {
|
|
82
81
|
SistaUndervisningsdatum: string;
|
|
83
82
|
}[];
|
|
@@ -83,8 +83,8 @@ const fetchStructurePartsVersions = (utbildningsinstansUIDn, ladokClient) => __a
|
|
|
83
83
|
exports.fetchStructurePartsVersions = fetchStructurePartsVersions;
|
|
84
84
|
const categoryMap = {
|
|
85
85
|
'VILLKORLIGT VALFRI': 'VV',
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
REKOMMENDERAD: 'R',
|
|
87
|
+
VALFRI: 'V',
|
|
88
88
|
};
|
|
89
89
|
const categorizeStructureParts = (strukturDelar) => {
|
|
90
90
|
return strukturDelar.map(strukturdel => {
|
|
@@ -105,7 +105,7 @@ function fetchMappedStructurePartInstances(categorizedStrukturDelar, language, l
|
|
|
105
105
|
return filtered.map(instance => (0, mapStructureCourses_1.mapStructurePartInstances)(instance, language));
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
const SPECIALIZATION_INSTANCE_TYPE =
|
|
108
|
+
const SPECIALIZATION_INSTANCE_TYPE = 'Inriktningstillfälle';
|
|
109
109
|
function isSpecializationInstance(instance) {
|
|
110
110
|
const type = instance.utbildningstyp;
|
|
111
111
|
return (type === null || type === void 0 ? void 0 : type.name) === SPECIALIZATION_INSTANCE_TYPE || (type === null || type === void 0 ? void 0 : type.nameOther) === SPECIALIZATION_INSTANCE_TYPE;
|
|
@@ -187,17 +187,14 @@ const mapSpecializationCurriculums = (specializations, startperiodCode, lengthIn
|
|
|
187
187
|
});
|
|
188
188
|
const fetchProgramStructure = (utbildningstillfalleUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
189
189
|
try {
|
|
190
|
-
const { startperiod, lengthInStudyYears, courseListFromStructure, specializationListFromStructure
|
|
190
|
+
const { startperiod, lengthInStudyYears, courseListFromStructure, specializationListFromStructure } = yield getMainProgramInstanceData(utbildningstillfalleUID, language, ladokClient);
|
|
191
191
|
const periodData = yield ladokClient.period();
|
|
192
192
|
if (periodData.type === 'error') {
|
|
193
193
|
throw new Error(`API error: ${periodData.responseInfo.message}`);
|
|
194
194
|
}
|
|
195
195
|
const mainStudyYears = (0, studyYearUtil_1.generateStudyYearData)(courseListFromStructure, periodData.data.Period, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears);
|
|
196
196
|
const specializationCurriculums = yield mapSpecializationCurriculums(specializationListFromStructure, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears, language, ladokClient, periodData.data.Period);
|
|
197
|
-
return [
|
|
198
|
-
{ studyYears: mainStudyYears },
|
|
199
|
-
...specializationCurriculums,
|
|
200
|
-
];
|
|
197
|
+
return [{ studyYears: mainStudyYears }, ...specializationCurriculums];
|
|
201
198
|
}
|
|
202
199
|
catch (error) {
|
|
203
200
|
throw (0, exports.handleError)('Unexpected error during processing', error);
|