@kth/om-kursen-ladok-client 2.2.0 → 2.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/dist/attributVardenConstants.d.ts +0 -3
- package/dist/attributVardenConstants.js +7 -4
- package/dist/attributVardenConstants.js.map +1 -1
- package/dist/createApiClient.js +59 -84
- package/dist/createApiClient.js.map +1 -1
- package/dist/kth/KTHPeriod/KTHPeriod.d.ts +19 -0
- package/dist/kth/KTHPeriod/KTHPeriod.js +60 -0
- package/dist/kth/KTHPeriod/KTHPeriod.js.map +1 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.d.ts +10 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js +41 -0
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js.map +1 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.d.ts +12 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.js +76 -0
- package/dist/kth/KTHPeriod/convertToKTHPeriods.js.map +1 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.d.ts +7 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js +36 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js.map +1 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.d.ts +16 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js +28 -0
- package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js.map +1 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.d.ts +9 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js +21 -0
- package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js.map +1 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.d.ts +8 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.js +43 -0
- package/dist/kth/KTHPeriod/testdata/kthPeriods.js.map +1 -0
- package/dist/kth/extractFunctions/extractBasicCourseData.d.ts +4 -1
- package/dist/kth/extractFunctions/extractBasicCourseData.js +6 -5
- package/dist/kth/extractFunctions/extractBasicCourseData.js.map +1 -1
- package/dist/mapCourseRound.d.ts +8 -15
- package/dist/mapCourseRound.js.map +1 -1
- package/dist/mapCourseSyllabus.d.ts +4 -1
- package/dist/mapCourseSyllabus.js.map +1 -1
- package/dist/programme/createProgrammeApi.js +2 -2
- package/dist/programme/createProgrammeApi.js.map +1 -1
- package/dist/search/createSearchApi.js +1 -1
- package/dist/search/createSearchApi.js.map +1 -1
- package/dist/search/searchService.js +1 -1
- package/dist/search/searchService.js.map +1 -1
- package/dist/search/types.d.ts +4 -1
- package/dist/search/utils/searchUtils.d.ts +4 -4
- package/dist/search/utils/searchUtils.js +2 -10
- package/dist/search/utils/searchUtils.js.map +1 -1
- package/dist/supportApis/PeriodService.d.ts +8 -0
- package/dist/supportApis/PeriodService.js +46 -0
- package/dist/supportApis/PeriodService.js.map +1 -0
- package/dist/utils/AcademicSemester.d.ts +1 -0
- package/dist/utils/AcademicSemester.js +5 -0
- package/dist/utils/AcademicSemester.js.map +1 -1
- package/dist/utils/getAllEntitiesByUseOfContinuation.d.ts +6 -2
- package/dist/utils/getAllEntitiesByUseOfContinuation.js +4 -2
- package/dist/utils/getAllEntitiesByUseOfContinuation.js.map +1 -1
- package/dist/utils/languageUtil.d.ts +5 -0
- package/dist/utils/languageUtil.js +11 -2
- package/dist/utils/languageUtil.js.map +1 -1
- package/dist/utils/mergeResponses.d.ts +2 -1
- package/dist/utils/mergeResponses.js +24 -6
- package/dist/utils/mergeResponses.js.map +1 -1
- package/dist/utils/periodUtil.d.ts +6 -0
- package/dist/utils/periodUtil.js +12 -2
- package/dist/utils/periodUtil.js.map +1 -1
- package/dist/utils/programUtil.d.ts +3 -3
- package/dist/utils/programUtil.js +38 -52
- package/dist/utils/programUtil.js.map +1 -1
- package/dist/utils/responseUtils.d.ts +4 -0
- package/dist/utils/responseUtils.js +17 -0
- package/dist/utils/responseUtils.js.map +1 -0
- package/dist/utils/typeChecking.d.ts +6 -0
- package/dist/utils/typeChecking.js +8 -1
- package/dist/utils/typeChecking.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractKTHPeriodSemesterFromLasperiodsfordelning = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const typeChecking_1 = require("../../utils/typeChecking");
|
|
6
|
+
const KTHPeriod_1 = require("./KTHPeriod");
|
|
7
|
+
const extractKTHPeriodSemesterFromLasperiodsfordelning = (tillfallesperioder) => {
|
|
8
|
+
if (!(0, typeChecking_1.isArrayWithValues)(tillfallesperioder))
|
|
9
|
+
return undefined;
|
|
10
|
+
const kthPeriods = tillfallesperioder.flatMap(({ Lasperiodsfordelning, ForstaUndervisningsdatum }) => {
|
|
11
|
+
if (!(0, typeChecking_1.isArrayWithValues)(Lasperiodsfordelning))
|
|
12
|
+
return undefined;
|
|
13
|
+
if (!isStrictIsoDate(ForstaUndervisningsdatum))
|
|
14
|
+
return undefined;
|
|
15
|
+
const firstTuitionDate = new Date(ForstaUndervisningsdatum);
|
|
16
|
+
return Lasperiodsfordelning.map(extractKHTPeriodFromLasperiodsfordelning(firstTuitionDate.getFullYear()));
|
|
17
|
+
});
|
|
18
|
+
const definedKthPeriods = kthPeriods.filter(typeChecking_1.isDefined);
|
|
19
|
+
definedKthPeriods.sort(KTHPeriod_1.compareKTHPeriodSemester);
|
|
20
|
+
return definedKthPeriods;
|
|
21
|
+
};
|
|
22
|
+
exports.extractKTHPeriodSemesterFromLasperiodsfordelning = extractKTHPeriodSemesterFromLasperiodsfordelning;
|
|
23
|
+
const strictIsoDate = /^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;
|
|
24
|
+
const isStrictIsoDate = (s) => strictIsoDate.test(s);
|
|
25
|
+
const extractKHTPeriodFromLasperiodsfordelning = (yearOfFirstTuitionDate) => ({ Lasperiodskod }) => {
|
|
26
|
+
const kthPeriod = (0, KTHPeriod_1.parseKTHPeriod)(Lasperiodskod);
|
|
27
|
+
if (!(0, typeChecking_1.isDefined)(kthPeriod))
|
|
28
|
+
return undefined;
|
|
29
|
+
// We know that the response from matchKthPeriodToSemesterNumber will not be undefined, because the passed kthPeriod is of correct format.
|
|
30
|
+
const semesterNumber = (0, KTHPeriod_1.matchKthPeriodToSemesterNumber)(kthPeriod);
|
|
31
|
+
return {
|
|
32
|
+
period: kthPeriod,
|
|
33
|
+
semester: new utils_1.AcademicSemester(yearOfFirstTuitionDate, semesterNumber),
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=extractKTHPeriodSemesterFromLasperiodsfordelning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractKTHPeriodSemesterFromLasperiodsfordelning.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.ts"],"names":[],"mappings":";;;AACA,uCAA8C;AAC9C,2DAAuE;AACvE,2CAKoB;AAMb,MAAM,gDAAgD,GAAG,CAC9D,kBAA0D,EACzB,EAAE;IACnC,IAAI,CAAC,IAAA,gCAAiB,EAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAA;IAE5D,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,EAAE,EAAE;QACnG,IAAI,CAAC,IAAA,gCAAiB,EAAC,oBAAoB,CAAC;YAAE,OAAO,SAAS,CAAA;QAE9D,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC;YAAE,OAAO,SAAS,CAAA;QAEhE,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAE3D,OAAO,oBAAoB,CAAC,GAAG,CAAC,wCAAwC,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC3G,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,wBAAS,CAAC,CAAA;IAEtD,iBAAiB,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAA;IAEhD,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AApBY,QAAA,gDAAgD,oDAoB5D;AAED,MAAM,aAAa,GAAG,0DAA0D,CAAA;AAEhF,MAAM,eAAe,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAErE,MAAM,wCAAwC,GAC5C,CAAC,sBAA8B,EAAE,EAAE,CACnC,CAAC,EAAE,aAAa,EAA+C,EAAE,EAAE;IACjE,MAAM,SAAS,GAAG,IAAA,0BAAc,EAAC,aAAa,CAAC,CAAA;IAE/C,IAAI,CAAC,IAAA,wBAAS,EAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAE3C,0IAA0I;IAC1I,MAAM,cAAc,GAAG,IAAA,0CAA8B,EAAC,SAAS,CAAE,CAAA;IAEjE,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,IAAI,wBAAgB,CAAC,sBAAsB,EAAE,cAAc,CAAC;KACvE,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { Lasperiodsfordelning, Tillfallesperiod } from '../../mapCourseRound';
|
|
3
|
+
import { KTHPeriodSemester } from './KTHPeriod';
|
|
4
|
+
/**
|
|
5
|
+
* This function tries to extract the KTHPeriods for the given tillfallesperioder.
|
|
6
|
+
* If the tillfallesperioder have Lasperiodsfordelningar, it will take the information from there.
|
|
7
|
+
* If it was unable to extract KTHPeriods from Lasperiodsfordelning, it will attempt to calculate the
|
|
8
|
+
* KTHPeriods based on the first and last date of study of the Tillfallesperioder
|
|
9
|
+
*
|
|
10
|
+
* @param tillfallesperioder Tillfallesperiod for which we want to know the periods
|
|
11
|
+
* @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare const getKTHPeriodSemesters: (tillfallesperioder: (Pick<Tillfallesperiod, "ForstaUndervisningsdatum" | "SistaUndervisningsdatum"> & {
|
|
15
|
+
Lasperiodsfordelning: Pick<Lasperiodsfordelning, "Lasperiodskod">[];
|
|
16
|
+
})[] | undefined, ladokPeriodDefinitions: PeriodItem[]) => KTHPeriodSemester[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getKTHPeriodSemesters = void 0;
|
|
4
|
+
const extractKTHPeriodSemesterFromLasperiodsfordelning_1 = require("./extractKTHPeriodSemesterFromLasperiodsfordelning");
|
|
5
|
+
const convertToKTHPeriods_1 = require("./convertToKTHPeriods");
|
|
6
|
+
const calculateKTHPeriodSemesterFromTillfallesperiod_1 = require("./calculateKTHPeriodSemesterFromTillfallesperiod");
|
|
7
|
+
/**
|
|
8
|
+
* This function tries to extract the KTHPeriods for the given tillfallesperioder.
|
|
9
|
+
* If the tillfallesperioder have Lasperiodsfordelningar, it will take the information from there.
|
|
10
|
+
* If it was unable to extract KTHPeriods from Lasperiodsfordelning, it will attempt to calculate the
|
|
11
|
+
* KTHPeriods based on the first and last date of study of the Tillfallesperioder
|
|
12
|
+
*
|
|
13
|
+
* @param tillfallesperioder Tillfallesperiod for which we want to know the periods
|
|
14
|
+
* @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
const getKTHPeriodSemesters = (tillfallesperioder, ladokPeriodDefinitions) => {
|
|
18
|
+
let kthPeriods = (0, extractKTHPeriodSemesterFromLasperiodsfordelning_1.extractKTHPeriodSemesterFromLasperiodsfordelning)(tillfallesperioder);
|
|
19
|
+
if (kthPeriods)
|
|
20
|
+
return kthPeriods;
|
|
21
|
+
const kthPeriodDefinitions = (0, convertToKTHPeriods_1.convertToKTHPeriods)(ladokPeriodDefinitions);
|
|
22
|
+
kthPeriods = (0, calculateKTHPeriodSemesterFromTillfallesperiod_1.calculateKTHPeriodSemesterFromTillfallesperiod)(tillfallesperioder, kthPeriodDefinitions);
|
|
23
|
+
if (kthPeriods)
|
|
24
|
+
return kthPeriods;
|
|
25
|
+
return [];
|
|
26
|
+
};
|
|
27
|
+
exports.getKTHPeriodSemesters = getKTHPeriodSemesters;
|
|
28
|
+
//# sourceMappingURL=getKTHPeriodSemesters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getKTHPeriodSemesters.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/getKTHPeriodSemesters.ts"],"names":[],"mappings":";;;AAEA,yHAAqH;AAErH,+DAA2D;AAC3D,qHAAiH;AAEjH;;;;;;;;;GASG;AACI,MAAM,qBAAqB,GAAG,CACnC,kBAIa,EACb,sBAAoC,EACf,EAAE;IACvB,IAAI,UAAU,GAAG,IAAA,mGAAgD,EAAC,kBAAkB,CAAC,CAAA;IAErF,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IAEjC,MAAM,oBAAoB,GAAG,IAAA,yCAAmB,EAAC,sBAAsB,CAAC,CAAA;IAExE,UAAU,GAAG,IAAA,+FAA8C,EAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAA;IAErG,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IAEjC,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAnBY,QAAA,qBAAqB,yBAmBjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { KTHPeriodDefinition, KTHPeriodSemester } from './KTHPeriod';
|
|
2
|
+
/**
|
|
3
|
+
* Attempts to match the given date to one of the given KTHPeriodDefinitions.
|
|
4
|
+
* Returns a matching KTHPeriodSemester or undefined
|
|
5
|
+
* @param date
|
|
6
|
+
* @param kthPeriods
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare const matchDateToKTHPeriodYear: (date: Date, kthPeriods: KTHPeriodDefinition[]) => KTHPeriodSemester | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchDateToKTHPeriodYear = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Attempts to match the given date to one of the given KTHPeriodDefinitions.
|
|
6
|
+
* Returns a matching KTHPeriodSemester or undefined
|
|
7
|
+
* @param date
|
|
8
|
+
* @param kthPeriods
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
const matchDateToKTHPeriodYear = (date, kthPeriods) => {
|
|
12
|
+
const kthPeriod = kthPeriods.find(({ fromDate, toDate }) => fromDate <= date && date <= toDate);
|
|
13
|
+
if (!kthPeriod)
|
|
14
|
+
return;
|
|
15
|
+
return {
|
|
16
|
+
period: kthPeriod === null || kthPeriod === void 0 ? void 0 : kthPeriod.kthPeriod,
|
|
17
|
+
semester: kthPeriod === null || kthPeriod === void 0 ? void 0 : kthPeriod.academicSemester,
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.matchDateToKTHPeriodYear = matchDateToKTHPeriodYear;
|
|
21
|
+
//# sourceMappingURL=matchDateToKTHPeriodYear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchDateToKTHPeriodYear.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/matchDateToKTHPeriodYear.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACI,MAAM,wBAAwB,GAAG,CACtC,IAAU,EACV,UAAiC,EACF,EAAE;IACjC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAA;IAE/F,IAAI,CAAC,SAAS;QAAE,OAAM;IAEtB,OAAO;QACL,MAAM,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS;QAC5B,QAAQ,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB;KACtC,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,wBAAwB,4BAYpC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kthPeriods2024 = void 0;
|
|
4
|
+
const utils_1 = require("../../../utils");
|
|
5
|
+
exports.kthPeriods2024 = [
|
|
6
|
+
{
|
|
7
|
+
fromDate: new Date('2024-01-16'),
|
|
8
|
+
toDate: new Date('2024-03-17'),
|
|
9
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('VT2024'),
|
|
10
|
+
kthPeriod: 3,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
fromDate: new Date('2024-03-18'),
|
|
14
|
+
toDate: new Date('2024-06-03'),
|
|
15
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('VT2024'),
|
|
16
|
+
kthPeriod: 4,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
fromDate: new Date('2024-06-04'),
|
|
20
|
+
toDate: new Date('2024-06-30'),
|
|
21
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('VT2024'),
|
|
22
|
+
kthPeriod: 5,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
fromDate: new Date('2024-07-01'),
|
|
26
|
+
toDate: new Date('2024-08-25'),
|
|
27
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('HT2024'),
|
|
28
|
+
kthPeriod: 0,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
fromDate: new Date('2024-08-26'),
|
|
32
|
+
toDate: new Date('2024-10-27'),
|
|
33
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('HT2024'),
|
|
34
|
+
kthPeriod: 1,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
fromDate: new Date('2024-10-28'),
|
|
38
|
+
toDate: new Date('2025-01-13'),
|
|
39
|
+
academicSemester: utils_1.AcademicSemester.fromLadokPeriodString('HT2024'),
|
|
40
|
+
kthPeriod: 2,
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
//# sourceMappingURL=kthPeriods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kthPeriods.js","sourceRoot":"","sources":["../../../../src/kth/KTHPeriod/testdata/kthPeriods.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AAGpC,QAAA,cAAc,GAKrB;IACJ;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;IACD;QACE,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAChC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9B,gBAAgB,EAAE,wBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAE;QACnE,SAAS,EAAE,CAAC;KACb;CACF,CAAA"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractBasicCourseData = exports.formatCreditsWithUnitLabel = exports.getCreditsUnit = void 0;
|
|
4
4
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
5
6
|
const getCreditsUnit = (utbildningstyp, language) => {
|
|
6
7
|
switch (utbildningstyp.creditsUnit.code) {
|
|
7
8
|
case 'HP':
|
|
8
9
|
case 'HP-K':
|
|
9
|
-
return language
|
|
10
|
+
return (0, utils_1.isEnglish)(language) ? 'credits' : 'hp';
|
|
10
11
|
case 'FUP':
|
|
11
12
|
return 'fup';
|
|
12
13
|
default:
|
|
@@ -14,7 +15,7 @@ const getCreditsUnit = (utbildningstyp, language) => {
|
|
|
14
15
|
}
|
|
15
16
|
};
|
|
16
17
|
exports.getCreditsUnit = getCreditsUnit;
|
|
17
|
-
const formatCredits = (omfattning, language) => language
|
|
18
|
+
const formatCredits = (omfattning, language) => (0, utils_1.isEnglish)(language) ? omfattning : omfattning.replace('.', ',');
|
|
18
19
|
const formatCreditsWithUnitLabel = (omfattning, utbildningstyp, language) => {
|
|
19
20
|
const credits = formatCredits(omfattning, language);
|
|
20
21
|
const unit = utbildningstyp ? (0, exports.getCreditsUnit)(utbildningstyp, language) : '';
|
|
@@ -25,8 +26,8 @@ const extractBasicCourseData = (attributvarden, language, uid) => {
|
|
|
25
26
|
var _a;
|
|
26
27
|
const kod = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.kod');
|
|
27
28
|
const benamningMultiLingual = {
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
name: (0, ladok_attributvarde_utils_1.extractString)(attributvarden, `utbildning.attribut.${(0, utils_1.isEnglish)(language) ? utils_1.LadokLanguageName.English : utils_1.LadokLanguageName.Swedish}.benamning`),
|
|
30
|
+
nameOther: (0, ladok_attributvarde_utils_1.extractString)(attributvarden, `utbildning.attribut.${(0, utils_1.isEnglish)(language) ? utils_1.LadokLanguageName.Swedish : utils_1.LadokLanguageName.English}.benamning`),
|
|
30
31
|
};
|
|
31
32
|
const omfattningRaw = (_a = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _a !== void 0 ? _a : '';
|
|
32
33
|
const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(attributvarden);
|
|
@@ -36,7 +37,7 @@ const extractBasicCourseData = (attributvarden, language, uid) => {
|
|
|
36
37
|
};
|
|
37
38
|
const baseData = {
|
|
38
39
|
kod,
|
|
39
|
-
benamning: benamningMultiLingual
|
|
40
|
+
benamning: benamningMultiLingual,
|
|
40
41
|
omfattning,
|
|
41
42
|
versionsnummer: (0, ladok_attributvarde_utils_1.extractVersionNumber)(attributvarden),
|
|
42
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractBasicCourseData.js","sourceRoot":"","sources":["../../../src/kth/extractFunctions/extractBasicCourseData.ts"],"names":[],"mappings":";;;AAAA,8EAQuC;
|
|
1
|
+
{"version":3,"file":"extractBasicCourseData.js","sourceRoot":"","sources":["../../../src/kth/extractFunctions/extractBasicCourseData.ts"],"names":[],"mappings":";;;AAAA,8EAQuC;AACvC,uCAAoE;AAa7D,MAAM,cAAc,GAAG,CAAC,cAA8B,EAAE,QAAkB,EAAE,EAAE;IACnF,QAAQ,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC;QACV,KAAK,MAAM;YACT,OAAO,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;QAC/C,KAAK,KAAK;YACR,OAAO,KAAK,CAAA;QACd;YACE,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IACxD,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B;AAED,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,QAAkB,EAAE,EAAE,CAC/D,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE1D,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,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC,CAAA;AARY,QAAA,0BAA0B,8BAQtC;AAEM,MAAM,sBAAsB,GAAG,CACpC,cAA4E,EAC5E,QAAkB,EAClB,GAAY,EACC,EAAE;;IACf,MAAM,GAAG,GAAG,IAAA,yCAAa,EAAC,cAAc,EAAE,yBAAyB,CAAE,CAAA;IAErE,MAAM,qBAAqB,GAAG;QAC5B,IAAI,EAAE,IAAA,yCAAa,EACjB,cAAc,EACd,uBAAuB,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,YAAY,CAC/G;QACD,SAAS,EAAE,IAAA,yCAAa,EACtB,cAAc,EACd,uBAAuB,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAiB,CAAC,OAAO,YAAY,CAC/G;KACF,CAAA;IAED,MAAM,aAAa,GAAG,MAAA,IAAA,yCAAa,EAAC,cAAc,EAAE,gCAAgC,EAAE,YAAY,CAAC,mCAAI,EAAE,CAAA;IACzG,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,cAAc,CAAC,CAAA;IAE5D,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,aAAa;QACrB,iBAAiB,EAAE,IAAA,kCAA0B,EAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC;KACvF,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,GAAG;QACH,SAAS,EAAE,qBAAqB;QAChC,UAAU;QACV,cAAc,EAAE,IAAA,gDAAoB,EAAC,cAAc,CAAC;KACrD,CAAA;IAED,OAAO,GAAG,CAAC,CAAC,iCAAM,QAAQ,KAAE,GAAG,IAAG,CAAC,CAAC,QAAQ,CAAA;AAC9C,CAAC,CAAA;AAlCY,QAAA,sBAAsB,0BAkClC"}
|
package/dist/mapCourseRound.d.ts
CHANGED
|
@@ -2,25 +2,19 @@ import { LadokStatus } from '@kth/ladok-attributvarde-utils';
|
|
|
2
2
|
import { SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
|
|
3
3
|
import { Language, TranslatedGrunddata } from './utils';
|
|
4
4
|
import { PartOfProgramme } from './mapPartOfProgramme';
|
|
5
|
-
|
|
5
|
+
export type Lasperiodsfordelning = {
|
|
6
|
+
Lasperiodskod: string;
|
|
7
|
+
Omfattningsvarde: number;
|
|
8
|
+
link: string[];
|
|
9
|
+
};
|
|
10
|
+
export type Tillfallesperiod = {
|
|
6
11
|
ForstaRegistreringsdatum: string;
|
|
7
12
|
ForstaUndervisningsdatum: string;
|
|
8
13
|
SistaRegistreringsdatum: string;
|
|
9
|
-
Lasperiodsfordelning: [
|
|
10
|
-
{
|
|
11
|
-
Lasperiodskod: string;
|
|
12
|
-
Omfattningsvarde: number;
|
|
13
|
-
link: string[];
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
Lasperiodskod: string;
|
|
17
|
-
Omfattningsvarde: number;
|
|
18
|
-
link: string[];
|
|
19
|
-
}
|
|
20
|
-
];
|
|
14
|
+
Lasperiodsfordelning: Lasperiodsfordelning[];
|
|
21
15
|
Omfattningsvarde: number;
|
|
22
16
|
SistaUndervisningsdatum: string;
|
|
23
|
-
}
|
|
17
|
+
};
|
|
24
18
|
export type CourseRound = {
|
|
25
19
|
uid: string;
|
|
26
20
|
utbildningstyp: string;
|
|
@@ -60,4 +54,3 @@ export type CourseRound = {
|
|
|
60
54
|
schemaUrl?: string;
|
|
61
55
|
};
|
|
62
56
|
export declare const mapCourseRound: (item: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, language: Language, partOfProgramme?: PartOfProgramme[]) => CourseRound;
|
|
63
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":";;;AAAA,8EAWuC;AAEvC,mCAOgB;AAChB,qDAAoD;
|
|
1
|
+
{"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,10 @@ interface FormattedExaminationModules {
|
|
|
8
8
|
export type KursPlan = {
|
|
9
9
|
course: {
|
|
10
10
|
kod: string | undefined;
|
|
11
|
-
benamning:
|
|
11
|
+
benamning: {
|
|
12
|
+
name: string | undefined;
|
|
13
|
+
nameOther: string | undefined;
|
|
14
|
+
};
|
|
12
15
|
omfattning: {
|
|
13
16
|
number: string | undefined;
|
|
14
17
|
formattedWithUnit: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":";;;AACA,8EAMuC;AACvC,8EAAwF;AACxF,mCAQgB;AAEhB,mEAAwD;AACxD,kGAAmH;AACnH,2EAAgF;AAChF,0FAAmG;
|
|
1
|
+
{"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,9 +34,9 @@ const createProgrammeApi = (ladokClient) => {
|
|
|
34
34
|
maxContinuationIterations: 6,
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
|
-
const [activeProgrammes, cancelledProgrammes] = yield Promise.all([
|
|
37
|
+
const [{ allEntities: activeProgrammes }, { allEntities: cancelledProgrammes }] = yield Promise.all([
|
|
38
38
|
fetchProgrammes(activeProgrammesRequestQuery),
|
|
39
|
-
getAvvecklad ? fetchProgrammes(cancelledProgrammesRequestQuery) : Promise.resolve([]),
|
|
39
|
+
getAvvecklad ? fetchProgrammes(cancelledProgrammesRequestQuery) : Promise.resolve({ allEntities: [] }),
|
|
40
40
|
]);
|
|
41
41
|
const mergedProgrammes = (0, mergeResponses_1.mergePlainArrays)(activeProgrammes, cancelledProgrammes, item => item.instans_uid);
|
|
42
42
|
const mappedProgrammes = mergedProgrammes.map(programme => (0, mapProgrammeVersion_1.mapProgrammeVersion)(programme, language));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProgrammeApi.js","sourceRoot":"","sources":["../../src/programme/createProgrammeApi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,sDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"createProgrammeApi.js","sourceRoot":"","sources":["../../src/programme/createProgrammeApi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,sDAAqD;AACrD,kGAGmD;AACnD,gEAA4D;AAC5D,wEAAwF;AACxF,2EAAkF;AAClF,4DAA0D;AAC1D,uEAAoE;AAE7D,MAAM,kBAAkB,GAAG,CAAC,WAAsC,EAAgB,EAAE;IACzF,OAAO;QACL,uBAAuB,EAAE,wBAAsC,EAAE,+DAAjC,QAAQ,EAAE,YAAY,GAAG,IAAI;YAC3D,IAAI,CAAC;gBACH,MAAM,4BAA4B,GAAG;oBACnC,GAAG,EAAE,SAAS;oBACd,qBAAqB,EAAE,qEAA2C;oBAClE,YAAY,EAAE,kCAAiB;oBAC/B,gBAAgB,EAAE,gEAAoC;iBACvD,CAAA;gBAED,MAAM,+BAA+B,mCAChC,4BAA4B,KAC/B,SAAS,EAAE,MAAM,GAClB,CAAA;gBAED,MAAM,eAAe,GAAG,CACtB,KAAqC,EACmC,EAAE;oBAC1E,OAAO,IAAA,qEAAiC,EAAC,WAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE;wBACrF,wBAAwB,EAAE,GAAG;wBAC7B,yBAAyB,EAAE,CAAC;qBAC7B,CAAC,CAAA;gBACJ,CAAC,CAAA;gBAED,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAClG,eAAe,CAAC,4BAA4B,CAAC;oBAC7C,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;iBACvG,CAAC,CAAA;gBAEF,MAAM,gBAAgB,GAAG,IAAA,iCAAgB,EAAC,gBAAgB,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAY,CAAC,CAAA;gBAC3G,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAA,yCAAmB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;gBACpG,MAAM,qBAAqB,GAAG,IAAA,4CAAqB,EAAC,gBAAgB,CAAC,CAAA;gBAErE,OAAO,qBAAqB,CAAA;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC,CAAA;KACF,CAAA;AACH,CAAC,CAAA;AAxCY,QAAA,kBAAkB,sBAwC9B"}
|
|
@@ -28,7 +28,7 @@ const createSearchApi = (ladokClient) => {
|
|
|
28
28
|
const cleanSearchParams = (0, searchUtils_1.validateAndCleanSearchParams)(searchParams);
|
|
29
29
|
const departmentList = yield supportService.getSchoolsWithDepartmentsForSearch(language);
|
|
30
30
|
const { requestQuery, filterPeriod } = (0, searchUtils_1.prepareSearchRequestQueryForKursTillfallen)(cleanSearchParams, departmentList);
|
|
31
|
-
const allCourses = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalleSlim, requestQuery);
|
|
31
|
+
const { allEntities: allCourses } = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalleSlim, requestQuery);
|
|
32
32
|
const mappedCourses = allCourses.map(course => (0, mapSearchResult_1.mapKursTillfalleResult)(course, language));
|
|
33
33
|
const groupedCourses = (0, groupSearchResults_1.groupSearchResults)(mappedCourses, filterPeriod);
|
|
34
34
|
// TODO Remove this once we have a query parameter to filter for miljö courses
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSearchApi.js","sourceRoot":"","sources":["../../src/search/createSearchApi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,qDAI4B;AAC5B,kGAA8F;AAC9F,wDAA2D;AAC3D,8DAA0D;AAC1D,oDAAmD;AACnD,6EAAyE;AACzE,mDAA+C;AAC/C,kEAA8D;AAC9D,sDAAsD;AAE/C,MAAM,eAAe,GAAG,CAAC,WAAsC,EAAa,EAAE;IACnF,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,WAAW,CAAC,CAAA;IACtD,OAAO;QACL,aAAa,EAAE,CAAO,YAAY,EAAE,QAAQ,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,IAAA,0CAA4B,EAAC,YAAY,CAAC,CAAA;gBAEpE,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAA;gBAExF,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,wDAA0C,EAC/E,iBAAiB,EACjB,cAAc,CACf,CAAA;gBAED,MAAM,UAAU,GAAG,MAAM,IAAA,qEAAiC,
|
|
1
|
+
{"version":3,"file":"createSearchApi.js","sourceRoot":"","sources":["../../src/search/createSearchApi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,qDAI4B;AAC5B,kGAA8F;AAC9F,wDAA2D;AAC3D,8DAA0D;AAC1D,oDAAmD;AACnD,6EAAyE;AACzE,mDAA+C;AAC/C,kEAA8D;AAC9D,sDAAsD;AAE/C,MAAM,eAAe,GAAG,CAAC,WAAsC,EAAa,EAAE;IACnF,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,WAAW,CAAC,CAAA;IACtD,OAAO;QACL,aAAa,EAAE,CAAO,YAAY,EAAE,QAAQ,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,IAAA,0CAA4B,EAAC,YAAY,CAAC,CAAA;gBAEpE,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAA;gBAExF,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,wDAA0C,EAC/E,iBAAiB,EACjB,cAAc,CACf,CAAA;gBAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,qEAAiC,EAGzE,WAAW,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAA;gBAEjD,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,wCAAsB,EAAC,MAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;gBAEzF,MAAM,cAAc,GAAG,IAAA,uCAAkB,EAAC,aAAa,EAAE,YAAY,CAAC,CAAA;gBAEtE,8EAA8E;gBAC9E,MAAM,oBAAoB,GAAG,IAAA,mCAAqB,EAAC,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAA;gBAE7F,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,GAAG,CAAC,iDAAuB,CAAC,CAAA;gBAE/E,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAA;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAA;gBACxC,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,WAAW,CAAC,SAAS;iBACjC,CAAA;YACH,CAAC;QACH,CAAC,CAAA;QACD,oBAAoB,EAAE,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;QAC5E,2BAA2B,EAAE,CAAO,gBAAgB,EAAE,QAAQ,EAAE,EAAE;YAChE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;YAE3G,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;oBACL,wBAAwB,EAAE;wBACxB,cAAc,EAAE,EAAE;wBAClB,UAAU,EAAE,EAAE;wBACd,OAAO,EAAE,EAAE;qBACZ;oBACD,SAAS,EAAE,6BAAe,CAAC,aAAa;iBACzC,CAAA;YACH,CAAC;YAED,OAAO;gBACL,wBAAwB,EAAE;oBACxB,cAAc,EAAE,UAAU,CAAC,IAAI;oBAC/B,UAAU,EAAE,UAAU,CAAC,IAAI;oBAC3B,OAAO;iBACR;gBACD,SAAS,EAAE,6BAAe,CAAC,aAAa;aACzC,CAAA;QACH,CAAC,CAAA;KACF,CAAA;AACH,CAAC,CAAA;AA/DY,QAAA,eAAe,mBA+D3B"}
|
|
@@ -49,7 +49,7 @@ class SearchService {
|
|
|
49
49
|
}
|
|
50
50
|
searchLatestApprovedCourseVersions(requestQueryForKursInstans, language, continuationOptions) {
|
|
51
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const allCourseVersions = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(this.ladokClient.
|
|
52
|
+
const { allEntities: allCourseVersions } = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(this.ladokClient.sokUtbildningsInstans, requestQueryForKursInstans, continuationOptions);
|
|
53
53
|
const gradingScalesCodes = yield (0, gradingScalesUtils_1.getGradingScalesCodes)(this.ladokClient); // TODO: Use cached values
|
|
54
54
|
const allMappedCourseVersions = allCourseVersions.map(courseVersion => (0, mapCourse_1.mapCourse)(courseVersion, language, gradingScalesCodes));
|
|
55
55
|
const latestCourseVersions = (0, searchUtils_1.findLatestCourseVersions)(allMappedCourseVersions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchService.js","sourceRoot":"","sources":["../../src/search/searchService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,4CAAwC;AACxC,oDAAmD;AACnD,oEAAmE;AACnE,kGAA8F;AAC9F,+FAA2F;AAC3F,qEAAiE;AACjE,qDAM4B;AAE5B,4EAAwE;AACxE,kEAA8D;AAC9D,sDAAkD;AAGlD,MAAa,aAAa;IAGxB,YAAoB,WAAsC;QAAtC,gBAAW,GAAX,WAAW,CAA2B;QACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,WAAW,CAAC,CAAA;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,WAAW,CAAC,CAAA;IACvD,CAAC;IAEY,oBAAoB,CAAC,YAA0B,EAAE,QAAkB;;YAC9E,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,IAAA,0CAA4B,EAAC,YAAY,CAAC,CAAA;gBAEpE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAA;gBAE7F,MAAM,0BAA0B,GAAG,IAAA,qDAAuC,EAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;gBAE7G,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAA;gBAEjH,8EAA8E;gBAC9E,MAAM,oBAAoB,GAAG,IAAA,mCAAqB,EAAC,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAA;gBAEpG,MAAM,iBAAiB,GAAuB,oBAAoB,CAAC,GAAG,CAAC,yCAAmB,CAAC,CAAA;gBAE3F,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAA;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAA;gBACxC,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,WAAW,CAAC,SAAS;iBACjC,CAAA;YACH,CAAC;QACH,CAAC;KAAA;IAEa,kCAAkC,CAC9C,
|
|
1
|
+
{"version":3,"file":"searchService.js","sourceRoot":"","sources":["../../src/search/searchService.ts"],"names":[],"mappings":"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"}
|
package/dist/search/types.d.ts
CHANGED
|
@@ -27,7 +27,10 @@ export type CleanSearchParams = Omit<SearchParams, 'utbildningsniva'> & {
|
|
|
27
27
|
};
|
|
28
28
|
export type CourseVersionDTO = {
|
|
29
29
|
kod: string;
|
|
30
|
-
benamning:
|
|
30
|
+
benamning: {
|
|
31
|
+
name: string | undefined;
|
|
32
|
+
nameOther: string | undefined;
|
|
33
|
+
};
|
|
31
34
|
omfattning: string;
|
|
32
35
|
utbildningstyp: string;
|
|
33
36
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SokUtbildningsInstansQuery, SokUtbildningsTillfalleQuery } from '@kth/ladok-mellanlager-client';
|
|
2
2
|
import { CleanSearchParams, SearchParams } from '../types';
|
|
3
3
|
import { SchoolWithDepartments } from '../../supportApis/types';
|
|
4
4
|
import { Course } from '../../mapCourse';
|
|
@@ -13,14 +13,14 @@ import { Course } from '../../mapCourse';
|
|
|
13
13
|
*/
|
|
14
14
|
export declare const validateAndCleanSearchParams: (searchParams: SearchParams) => CleanSearchParams;
|
|
15
15
|
export declare const prepareSearchRequestQueryForKursTillfallen: (searchParams: CleanSearchParams, schoolsWithDepartments: SchoolWithDepartments[]) => {
|
|
16
|
-
requestQuery: NonNullable<
|
|
16
|
+
requestQuery: NonNullable<SokUtbildningsTillfalleQuery>;
|
|
17
17
|
filterPeriod: boolean;
|
|
18
18
|
};
|
|
19
|
-
export declare const prepareSearchRequestQueryForKursInstans: (searchParams: CleanSearchParams, schoolsWithDepartments: SchoolWithDepartments[]) => NonNullable<
|
|
19
|
+
export declare const prepareSearchRequestQueryForKursInstans: (searchParams: CleanSearchParams, schoolsWithDepartments: SchoolWithDepartments[]) => NonNullable<SokUtbildningsInstansQuery>;
|
|
20
20
|
export declare const prepareSearchRequestQueryForDepartmentList: (schoolsWithDepartments: SchoolWithDepartments[], { rawUtbildningsniva, organisation, }: {
|
|
21
21
|
organisation?: string;
|
|
22
22
|
rawUtbildningsniva: string[] | undefined;
|
|
23
|
-
}) => NonNullable<
|
|
23
|
+
}) => NonNullable<SokUtbildningsInstansQuery>;
|
|
24
24
|
/**
|
|
25
25
|
* This function takes an array of courseVersions, groups them by their kod, and finds the latest version of each course.
|
|
26
26
|
* It returns an array of distinct courses (based on kod).
|
|
@@ -5,7 +5,6 @@ const SearchError_1 = require("../../utils/SearchError");
|
|
|
5
5
|
const utils_1 = require("../../utils");
|
|
6
6
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
7
7
|
const utbildningsTypIdConstants_1 = require("../utbildningsTypIdConstants");
|
|
8
|
-
const attributVardenConstants_1 = require("../../attributVardenConstants");
|
|
9
8
|
const typeChecking_1 = require("../../utils/typeChecking");
|
|
10
9
|
const queryConstants_1 = require("../../queryConstants");
|
|
11
10
|
const educationalTypeUtils_1 = require("./educationalTypeUtils");
|
|
@@ -57,19 +56,12 @@ const mapUtbildningsniva = (utbildningsniva) => {
|
|
|
57
56
|
return undefined;
|
|
58
57
|
}
|
|
59
58
|
};
|
|
60
|
-
// TODO Benni, maybe this does not make things cleaner, observe
|
|
61
|
-
// TODO Benni don't forget this when cleaning up types on query object
|
|
62
|
-
const DEFAULT_INSTANCE_QUERY_PARAMS = {
|
|
63
|
-
attributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH,
|
|
64
|
-
instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH,
|
|
65
|
-
antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR,
|
|
66
|
-
};
|
|
67
59
|
const prepareSearchRequestQueryForKursTillfallen = (searchParams, schoolsWithDepartments) => {
|
|
68
60
|
const { kodEllerBenamning, organisation, sprak, startPeriod, utbildningsniva, avvecklad } = searchParams;
|
|
69
61
|
const educationalTypes = (0, educationalTypeUtils_1.getUtbildningsnivaParameterForKursTillfalle)(utbildningsniva);
|
|
70
62
|
const organisationsFilter = getOrganisationsFilter(schoolsWithDepartments, organisation);
|
|
71
63
|
const filterPeriod = !Boolean(startPeriod);
|
|
72
|
-
const requestQuery = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(
|
|
64
|
+
const requestQuery = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ kodEllerBenamning: kodEllerBenamning !== null && kodEllerBenamning !== void 0 ? kodEllerBenamning : '*' }, getStartPeriodOrTerminkodStart(startPeriod)), (educationalTypes && { utbildningsniva: educationalTypes })), (organisationsFilter && { organisation: organisationsFilter })), (sprak && { sprak })), (avvecklad && { avvecklad })), { utbildningstypid: utbildningsTypIdConstants_1.INSTANCE_UTBILDNINGSTYP_IDS, antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR });
|
|
73
65
|
return { requestQuery, filterPeriod }; // TODO Benni this does two things, filterPeriod should probably be split out
|
|
74
66
|
};
|
|
75
67
|
exports.prepareSearchRequestQueryForKursTillfallen = prepareSearchRequestQueryForKursTillfallen;
|
|
@@ -84,7 +76,7 @@ const getOrganisationsFilter = (organisationer, organisation) => {
|
|
|
84
76
|
const prepareSearchRequestQueryForKursInstans = (searchParams, schoolsWithDepartments) => {
|
|
85
77
|
const { kodEllerBenamning, avvecklad, organisation, utbildningsniva } = searchParams;
|
|
86
78
|
const organisationsFilter = getOrganisationsFilter(schoolsWithDepartments, organisation);
|
|
87
|
-
return Object.assign(Object.assign(Object.assign(Object.assign(
|
|
79
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, minimalSearchRequestQueryForKursInstans(queryConstants_1.MAX_ANTAL_TRAFFAR, utbildningsniva)), { kodEllerBenamning: kodEllerBenamning !== null && kodEllerBenamning !== void 0 ? kodEllerBenamning : '*' }), (avvecklad && { avvecklad })), (organisationsFilter && { organisation: organisationsFilter }));
|
|
88
80
|
};
|
|
89
81
|
exports.prepareSearchRequestQueryForKursInstans = prepareSearchRequestQueryForKursInstans;
|
|
90
82
|
const minimalSearchRequestQueryForKursInstans = (antalTraffar, utbildningsniva) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchUtils.js","sourceRoot":"","sources":["../../../src/search/utils/searchUtils.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AAErD,uCAAqE;AACrE,8EAAqE;AACrE,4EAA0E;
|
|
1
|
+
{"version":3,"file":"searchUtils.js","sourceRoot":"","sources":["../../../src/search/utils/searchUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LadokMellanlagerApiClient, PeriodItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
export declare class PeriodService {
|
|
3
|
+
private ladokClient;
|
|
4
|
+
private static cache;
|
|
5
|
+
constructor(ladokClient: LadokMellanlagerApiClient);
|
|
6
|
+
private aggregatePeriodItems;
|
|
7
|
+
getPeriodItems(): Promise<PeriodItem[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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.PeriodService = void 0;
|
|
13
|
+
const cache_1 = require("../cache");
|
|
14
|
+
// Refresh every 24 hours should be more than enough for period information
|
|
15
|
+
const cacheTTLInMinutes = 60 * 24;
|
|
16
|
+
class PeriodService {
|
|
17
|
+
constructor(ladokClient) {
|
|
18
|
+
this.ladokClient = ladokClient;
|
|
19
|
+
}
|
|
20
|
+
aggregatePeriodItems() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
try {
|
|
23
|
+
const periodResponse = yield this.ladokClient.period();
|
|
24
|
+
if (periodResponse.type !== 'success') {
|
|
25
|
+
throw new Error(`API call failed: ${periodResponse.responseInfo.apiError || 'Unknown error'}`);
|
|
26
|
+
}
|
|
27
|
+
if (typeof periodResponse.data !== 'object') {
|
|
28
|
+
throw new Error('periodResponse.data is not an object.');
|
|
29
|
+
}
|
|
30
|
+
return periodResponse.data.Period;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// TODO log.error
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getPeriodItems() {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
return PeriodService.cache.getData('periodItems', () => this.aggregatePeriodItems());
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.PeriodService = PeriodService;
|
|
45
|
+
PeriodService.cache = new cache_1.Cache(cacheTTLInMinutes);
|
|
46
|
+
//# sourceMappingURL=PeriodService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeriodService.js","sourceRoot":"","sources":["../../src/supportApis/PeriodService.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAAgC;AAEhC,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,CAAA;AAEjC,MAAa,aAAa;IAExB,YAAoB,WAAsC;QAAtC,gBAAW,GAAX,WAAW,CAA2B;IAAG,CAAC;IAEhD,oBAAoB;;YAChC,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;gBAEtD,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,oBAAoB,cAAc,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC,CAAA;gBAChG,CAAC;gBACD,IAAI,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;gBAC1D,CAAC;gBAED,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iBAAiB;gBAEjB,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;YACzB,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;QACtF,CAAC;KAAA;;AAzBH,sCA0BC;AAzBgB,mBAAK,GAAwB,IAAI,aAAK,CAAe,iBAAiB,CAAC,CAAA"}
|
|
@@ -30,6 +30,7 @@ export declare class AcademicSemester {
|
|
|
30
30
|
* Create from a plain JSON object, as produced by toJSON().
|
|
31
31
|
*/
|
|
32
32
|
static fromJSON({ year, semesterNumber }: AcademicSemesterJSON): AcademicSemester;
|
|
33
|
+
static compare(a: AcademicSemester, b: AcademicSemester): number;
|
|
33
34
|
/**
|
|
34
35
|
* Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
|
|
35
36
|
*/
|
|
@@ -45,6 +45,11 @@ class AcademicSemester {
|
|
|
45
45
|
static fromJSON({ year, semesterNumber }) {
|
|
46
46
|
return new AcademicSemester(year, semesterNumber);
|
|
47
47
|
}
|
|
48
|
+
static compare(a, b) {
|
|
49
|
+
if (a.year !== b.year)
|
|
50
|
+
return a.year - b.year;
|
|
51
|
+
return a.semesterNumber - b.semesterNumber;
|
|
52
|
+
}
|
|
48
53
|
/**
|
|
49
54
|
* Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
|
|
50
55
|
*/
|