@kth/om-kursen-ladok-client 2.5.6 → 3.0.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/groupSearchResults.d.ts +16 -5
- package/dist/groupSearchResults.js +46 -34
- package/dist/groupSearchResults.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/kth/KTHPeriod/KTHPeriod.d.ts +1 -0
- package/dist/kth/KTHPeriod/KTHPeriod.js +5 -1
- package/dist/kth/KTHPeriod/KTHPeriod.js.map +1 -1
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.d.ts +2 -2
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js +2 -13
- package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js.map +1 -1
- package/dist/kth/KTHPeriod/createKTHPeriodSemester.d.ts +9 -0
- package/dist/kth/KTHPeriod/createKTHPeriodSemester.js +26 -0
- package/dist/kth/KTHPeriod/createKTHPeriodSemester.js.map +1 -0
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js +2 -10
- package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js.map +1 -1
- package/dist/kth/index.d.ts +1 -0
- package/dist/kth/index.js +18 -0
- package/dist/kth/index.js.map +1 -0
- package/dist/mapCourseInstance.js +1 -1
- package/dist/mapCourseInstance.js.map +1 -1
- package/dist/{mapSearchResult.d.ts → mapCourseInstanceResult.d.ts} +7 -5
- package/dist/{mapSearchResult.js → mapCourseInstanceResult.js} +11 -20
- package/dist/mapCourseInstanceResult.js.map +1 -0
- package/dist/search/createSearchApi.js +1 -35
- package/dist/search/createSearchApi.js.map +1 -1
- package/dist/search/searchService.d.ts +9 -0
- package/dist/search/searchService.js +39 -0
- package/dist/search/searchService.js.map +1 -1
- package/dist/search/types.d.ts +13 -9
- package/dist/search/utils/createLadokPeriodsAndKthPeriods.d.ts +16 -0
- package/dist/search/utils/createLadokPeriodsAndKthPeriods.js +62 -0
- package/dist/search/utils/createLadokPeriodsAndKthPeriods.js.map +1 -0
- package/dist/search/utils/mapCourseInstanceSearchDTO.js +30 -17
- package/dist/search/utils/mapCourseInstanceSearchDTO.js.map +1 -1
- package/dist/search/utils/searchUtils.d.ts +13 -5
- package/dist/search/utils/searchUtils.js +36 -19
- package/dist/search/utils/searchUtils.js.map +1 -1
- package/dist/utils/SearchError.d.ts +5 -5
- package/dist/utils/SearchError.js +5 -6
- package/dist/utils/SearchError.js.map +1 -1
- package/dist/utils/collectionUtils.d.ts +9 -0
- package/dist/utils/collectionUtils.js +24 -1
- package/dist/utils/collectionUtils.js.map +1 -1
- package/dist/utils/getAllEntitiesByUseOfContinuation.js +3 -3
- package/dist/utils/getAllEntitiesByUseOfContinuation.js.map +1 -1
- package/dist/utils/periodUtil.d.ts +1 -1
- package/dist/utils/periodUtil.js +3 -3
- package/dist/utils/periodUtil.js.map +1 -1
- package/package.json +2 -2
- package/dist/mapSearchResult.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { KTHPeriodSemester } from './kth/KTHPeriod/KTHPeriod';
|
|
2
|
+
import { CourseInstanceResult } from './mapCourseInstanceResult';
|
|
2
3
|
import { TranslatedGrunddata, TranslatedStudietakt, TranslatedUtbildningstyp } from './utils';
|
|
3
|
-
export type GroupedCourseSearchResult = Omit<
|
|
4
|
+
export type GroupedCourseSearchResult = Omit<CourseInstanceResult, 'studieort' | 'undervisningssprak' | 'utbildningstyp' | 'studietakt' | 'startperiod' | 'period'> & {
|
|
4
5
|
studieort: TranslatedGrunddata[];
|
|
5
6
|
undervisningssprak: TranslatedGrunddata[];
|
|
6
7
|
utbildningstyp: TranslatedUtbildningstyp[];
|
|
@@ -9,13 +10,23 @@ export type GroupedCourseSearchResult = Omit<CourseSearchResult, 'studieort' | '
|
|
|
9
10
|
code: string;
|
|
10
11
|
inDigits: string | null;
|
|
11
12
|
}[];
|
|
12
|
-
|
|
13
|
+
startingKTHPeriods: KTHPeriodSemester[];
|
|
14
|
+
startingKTHPeriod: KTHPeriodSemester | undefined;
|
|
13
15
|
};
|
|
14
16
|
/**
|
|
15
|
-
* Groups
|
|
17
|
+
* Groups CourseSearchResults (Course instances) by course code and optionally by startingKTHPeriod.
|
|
18
|
+
* In the Course Search result page, we want to display one row per Course, regardless of location,
|
|
19
|
+
* study pace, language, study level or ladokStartPeriod.
|
|
20
|
+
*
|
|
21
|
+
* The exception from that rule is, if the user has filtered by KTHPeriod, in that case, we want to show
|
|
22
|
+
* one course per startingKTHPeriod.
|
|
23
|
+
*
|
|
24
|
+
* We expect the data in all fields but studieort, studietakt, undervisningssprak and utbildningstyp to
|
|
25
|
+
* be the same. The resulting array of results will for those properties have the data of the first occurrence
|
|
26
|
+
* that was in the original array.
|
|
16
27
|
*
|
|
17
28
|
* @param courseSearchResults array of CourseSearchResult objects
|
|
18
29
|
* @param groupByPeriod true if the results should be grouped by period, false if they should only be grouped by course code
|
|
19
30
|
* @returns
|
|
20
31
|
*/
|
|
21
|
-
export declare const groupSearchResults: (courseSearchResults:
|
|
32
|
+
export declare const groupSearchResults: (courseSearchResults: CourseInstanceResult[], groupByPeriod: boolean) => GroupedCourseSearchResult[];
|
|
@@ -1,48 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.groupSearchResults = void 0;
|
|
4
|
+
const KTHPeriod_1 = require("./kth/KTHPeriod/KTHPeriod");
|
|
5
|
+
const typeChecking_1 = require("./utils/typeChecking");
|
|
4
6
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @param arr array to add object to
|
|
9
|
-
* @param obj object to possibly add to array
|
|
10
|
-
* @param getCompareValue function that returns the comparison value for uniqueness
|
|
11
|
-
*/
|
|
12
|
-
const addUniqueObjectWithCallback = (arr, obj, getCompareValue) => {
|
|
13
|
-
if (arr.every(x => getCompareValue(x) !== getCompareValue(obj))) {
|
|
14
|
-
arr.push(obj);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Adds a period object to the array if it is unique based on
|
|
19
|
-
* sistaUndervisningsdatum.date and forstaUndervisningsdatum.date.
|
|
7
|
+
* Groups CourseSearchResults (Course instances) by course code and optionally by startingKTHPeriod.
|
|
8
|
+
* In the Course Search result page, we want to display one row per Course, regardless of location,
|
|
9
|
+
* study pace, language, study level or ladokStartPeriod.
|
|
20
10
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
const addUniquePeriod = (arr, obj) => addUniqueObjectWithCallback(arr, obj, item => { var _a, _b, _c, _d; return `${(_b = (_a = item.sistaUndervisningsdatum) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b : ''}-${(_d = (_c = item.forstaUndervisningsdatum) === null || _c === void 0 ? void 0 : _c.date) !== null && _d !== void 0 ? _d : ''}`; });
|
|
25
|
-
/**
|
|
26
|
-
* Adds an object to the array if it is unique based on its 'code' property.
|
|
11
|
+
* The exception from that rule is, if the user has filtered by KTHPeriod, in that case, we want to show
|
|
12
|
+
* one course per startingKTHPeriod.
|
|
27
13
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
const addUniqueObjectByCode = (arr, obj) => addUniqueObjectWithCallback(arr, obj, item => item.code);
|
|
32
|
-
/**
|
|
33
|
-
* Groups course search results by course code and optionally by period.
|
|
14
|
+
* We expect the data in all fields but studieort, studietakt, undervisningssprak and utbildningstyp to
|
|
15
|
+
* be the same. The resulting array of results will for those properties have the data of the first occurrence
|
|
16
|
+
* that was in the original array.
|
|
34
17
|
*
|
|
35
18
|
* @param courseSearchResults array of CourseSearchResult objects
|
|
36
19
|
* @param groupByPeriod true if the results should be grouped by period, false if they should only be grouped by course code
|
|
37
20
|
* @returns
|
|
38
21
|
*/
|
|
39
|
-
const groupSearchResults = (courseSearchResults, groupByPeriod
|
|
22
|
+
const groupSearchResults = (courseSearchResults, groupByPeriod) => {
|
|
40
23
|
const groupedResults = {};
|
|
41
24
|
courseSearchResults.forEach(searchResult => {
|
|
42
|
-
|
|
43
|
-
const key = `${searchResult.kod}-${groupByPeriod ? '' : (_a = searchResult.startperiod) === null || _a === void 0 ? void 0 : _a.code}`;
|
|
25
|
+
const key = createKey(searchResult, groupByPeriod);
|
|
44
26
|
if (!groupedResults[key]) {
|
|
45
|
-
groupedResults[key] = Object.assign(Object.assign({}, searchResult), { studieort: [], studietakt: [], undervisningssprak: [], utbildningstyp: [],
|
|
27
|
+
groupedResults[key] = Object.assign(Object.assign({}, searchResult), { studieort: [], studietakt: [], undervisningssprak: [], utbildningstyp: [], startingKTHPeriods: [], startperiod: [] });
|
|
46
28
|
}
|
|
47
29
|
// Add unique objects by code to their respective arrays
|
|
48
30
|
if (searchResult.studieort) {
|
|
@@ -60,11 +42,41 @@ const groupSearchResults = (courseSearchResults, groupByPeriod = false) => {
|
|
|
60
42
|
if (searchResult.startperiod) {
|
|
61
43
|
addUniqueObjectByCode(groupedResults[key].startperiod, searchResult.startperiod);
|
|
62
44
|
}
|
|
63
|
-
if (searchResult.
|
|
64
|
-
|
|
45
|
+
if ((0, typeChecking_1.isDefined)(searchResult.startingKTHPeriod)) {
|
|
46
|
+
addUniqueObjectWithCallback(groupedResults[key].startingKTHPeriods, searchResult.startingKTHPeriod, x => (0, KTHPeriod_1.formatKTHPeriodSemester)(x));
|
|
65
47
|
}
|
|
66
48
|
});
|
|
67
|
-
|
|
49
|
+
const result = Object.values(groupedResults);
|
|
50
|
+
return result;
|
|
68
51
|
};
|
|
69
52
|
exports.groupSearchResults = groupSearchResults;
|
|
53
|
+
const createKey = (searchResult, groupByPeriod) => {
|
|
54
|
+
const periodSuffix = groupByPeriod ? createPeriodSuffix(searchResult.startingKTHPeriod) : '';
|
|
55
|
+
return `${searchResult.kod}${periodSuffix}`;
|
|
56
|
+
};
|
|
57
|
+
const createPeriodSuffix = (startingKTHPeriod) => {
|
|
58
|
+
if ((0, typeChecking_1.isDefined)(startingKTHPeriod))
|
|
59
|
+
return `-${(0, KTHPeriod_1.formatKTHPeriodSemester)(startingKTHPeriod)}`;
|
|
60
|
+
return '';
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Adds {@link obj} to {@link arr} if an equal object isn't already added.
|
|
64
|
+
* Uses a callback {@link getCompareValue} to define uniqueness.
|
|
65
|
+
*
|
|
66
|
+
* @param arr array to add object to
|
|
67
|
+
* @param obj object to possibly add to array
|
|
68
|
+
* @param getCompareValue function that returns the comparison value for uniqueness
|
|
69
|
+
*/
|
|
70
|
+
const addUniqueObjectWithCallback = (arr, obj, getCompareValue) => {
|
|
71
|
+
if (arr.every(x => getCompareValue(x) !== getCompareValue(obj))) {
|
|
72
|
+
arr.push(obj);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Adds an object to the array if it is unique based on its 'code' property.
|
|
77
|
+
*
|
|
78
|
+
* @param arr array of objects with a 'code' property
|
|
79
|
+
* @param obj object to possibly add
|
|
80
|
+
*/
|
|
81
|
+
const addUniqueObjectByCode = (arr, obj) => addUniqueObjectWithCallback(arr, obj, item => item.code);
|
|
70
82
|
//# sourceMappingURL=groupSearchResults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupSearchResults.js","sourceRoot":"","sources":["../src/groupSearchResults.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"groupSearchResults.js","sourceRoot":"","sources":["../src/groupSearchResults.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from './createApiClient';
|
|
2
2
|
export { EducationalLevelCode, LadokStatusCode } from '@kth/ladok-attributvarde-utils';
|
|
3
3
|
export { SearchErrorCode } from './utils/SearchError';
|
|
4
|
+
export type { SearchParams } from './search/types';
|
|
5
|
+
export type { OmKursenLadokApiClient } from './types/OmKursenLadokApiClient';
|
|
4
6
|
export type { ProgrammeCurriculum } from './utils/programmeUtil';
|
|
5
7
|
export type { ProgrammeCurriculumStudyYear } from './utils/programmeUtil';
|
|
6
8
|
export type { ProgrammeCourse } from './utils/programmeStructureUtil';
|
|
7
9
|
export type { Tillfallesperiod } from './mapCourseInstance';
|
|
8
10
|
export * from './utils/AcademicSemester';
|
|
11
|
+
export * from './kth';
|
package/dist/index.js
CHANGED
|
@@ -22,4 +22,5 @@ Object.defineProperty(exports, "LadokStatusCode", { enumerable: true, get: funct
|
|
|
22
22
|
var SearchError_1 = require("./utils/SearchError");
|
|
23
23
|
Object.defineProperty(exports, "SearchErrorCode", { enumerable: true, get: function () { return SearchError_1.SearchErrorCode; } });
|
|
24
24
|
__exportStar(require("./utils/AcademicSemester"), exports);
|
|
25
|
+
__exportStar(require("./kth"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,4EAAsF;AAA7E,iIAAA,oBAAoB,OAAA;AAAE,4HAAA,eAAe,OAAA;AAC9C,mDAAqD;AAA5C,8GAAA,eAAe,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,4EAAsF;AAA7E,iIAAA,oBAAoB,OAAA;AAAE,4HAAA,eAAe,OAAA;AAC9C,mDAAqD;AAA5C,8GAAA,eAAe,OAAA;AAUxB,2DAAwC;AACxC,wCAAqB"}
|
|
@@ -17,3 +17,4 @@ export declare const isKTHPeriodLabel: (s: string) => s is KTHPeriodLabel;
|
|
|
17
17
|
export declare const matchKthPeriodToSemesterNumber: (period: KTHPeriod) => SemesterNumber | undefined;
|
|
18
18
|
export declare const compareKTHPeriod: (a: KTHPeriod, b: KTHPeriod) => number;
|
|
19
19
|
export declare const compareKTHPeriodSemester: (a: KTHPeriodSemester, b: KTHPeriodSemester) => number;
|
|
20
|
+
export declare const formatKTHPeriodSemester: (kthPeriodSemester: KTHPeriodSemester) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compareKTHPeriodSemester = exports.compareKTHPeriod = exports.matchKthPeriodToSemesterNumber = exports.isKTHPeriodLabel = exports.parseKTHPeriod = exports.formatKTHPeriod = void 0;
|
|
3
|
+
exports.formatKTHPeriodSemester = exports.compareKTHPeriodSemester = exports.compareKTHPeriod = exports.matchKthPeriodToSemesterNumber = exports.isKTHPeriodLabel = exports.parseKTHPeriod = exports.formatKTHPeriod = void 0;
|
|
4
4
|
const utils_1 = require("../../utils");
|
|
5
5
|
const formatKTHPeriod = (kthPeriod) => {
|
|
6
6
|
return `P${kthPeriod}`;
|
|
@@ -57,4 +57,8 @@ const compareKTHPeriodSemester = (a, b) => {
|
|
|
57
57
|
return (0, exports.compareKTHPeriod)(a.period, b.period);
|
|
58
58
|
};
|
|
59
59
|
exports.compareKTHPeriodSemester = compareKTHPeriodSemester;
|
|
60
|
+
const formatKTHPeriodSemester = (kthPeriodSemester) => {
|
|
61
|
+
return `${kthPeriodSemester.semester.year}:${(0, exports.formatKTHPeriod)(kthPeriodSemester.period)}`;
|
|
62
|
+
};
|
|
63
|
+
exports.formatKTHPeriodSemester = formatKTHPeriodSemester;
|
|
60
64
|
//# sourceMappingURL=KTHPeriod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KTHPeriod.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/KTHPeriod.ts"],"names":[],"mappings":";;;AAAA,uCAA8D;AAkBvD,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAE,EAAE;IACtD,OAAO,IAAI,SAAS,EAAoB,CAAA;AAC1C,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAED,MAAM,KAAK,GAAG,YAAY,CAAA;AAEnB,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAc,CAAA;AACtC,CAAC,CAAA;AAPY,QAAA,cAAc,kBAO1B;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAuB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAApE,QAAA,gBAAgB,oBAAoD;AAE1E,MAAM,8BAA8B,GAAG,CAAC,MAAiB,EAA8B,EAAE;IAC9F,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,sBAAc,CAAC,MAAM,CAAA;QAC9B,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,sBAAc,CAAC,MAAM,CAAA;IAChC,CAAC;AACH,CAAC,CAAA;AAXY,QAAA,8BAA8B,kCAW1C;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE;IAC7D,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AAED,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,EAAE;IAC5C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;IACZ,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,wBAAwB,GAAG,CAAC,CAAoB,EAAE,CAAoB,EAAE,EAAE;IACrF,MAAM,kBAAkB,GAAG,wBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3E,IAAI,kBAAkB,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAA;IAEvD,OAAO,IAAA,wBAAgB,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC,CAAA;AALY,QAAA,wBAAwB,4BAKpC"}
|
|
1
|
+
{"version":3,"file":"KTHPeriod.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/KTHPeriod.ts"],"names":[],"mappings":";;;AAAA,uCAA8D;AAkBvD,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAE,EAAE;IACtD,OAAO,IAAI,SAAS,EAAoB,CAAA;AAC1C,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAED,MAAM,KAAK,GAAG,YAAY,CAAA;AAEnB,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,EAAE;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAc,CAAA;AACtC,CAAC,CAAA;AAPY,QAAA,cAAc,kBAO1B;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAuB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAApE,QAAA,gBAAgB,oBAAoD;AAE1E,MAAM,8BAA8B,GAAG,CAAC,MAAiB,EAA8B,EAAE;IAC9F,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,sBAAc,CAAC,MAAM,CAAA;QAC9B,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,sBAAc,CAAC,MAAM,CAAA;IAChC,CAAC;AACH,CAAC,CAAA;AAXY,QAAA,8BAA8B,kCAW1C;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,EAAE;IAC7D,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AAED,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,EAAE;IAC5C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;QACV,KAAK,CAAC;YACJ,OAAO,CAAC,CAAA;IACZ,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,wBAAwB,GAAG,CAAC,CAAoB,EAAE,CAAoB,EAAE,EAAE;IACrF,MAAM,kBAAkB,GAAG,wBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3E,IAAI,kBAAkB,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAA;IAEvD,OAAO,IAAA,wBAAgB,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC,CAAA;AALY,QAAA,wBAAwB,4BAKpC;AAEM,MAAM,uBAAuB,GAAG,CAAC,iBAAoC,EAAE,EAAE;IAC9E,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAA,uBAAe,EAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAA;AAC1F,CAAC,CAAA;AAFY,QAAA,uBAAuB,2BAEnC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Tillfallesperiod } from '../../mapCourseInstance';
|
|
2
|
-
import { KTHPeriodDefinition
|
|
2
|
+
import { KTHPeriodDefinition } from './KTHPeriod';
|
|
3
3
|
/**
|
|
4
4
|
* This function attempts to match the Forsta and SistaUndervisningsdatum of each tillfallesperiod to a KTHPeriod.
|
|
5
5
|
* It returns an array of KTHPeriod
|
|
@@ -7,4 +7,4 @@ import { KTHPeriodDefinition, KTHPeriodSemester } from './KTHPeriod';
|
|
|
7
7
|
* @param kthPeriods KTHPeriodDefinitions
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare const calculateKTHPeriodSemesterFromTillfallesperiod: (tillfallesperioder: Pick<Tillfallesperiod, "ForstaUndervisningsdatum" | "SistaUndervisningsdatum">[] | undefined, kthPeriods: KTHPeriodDefinition[] | undefined) => KTHPeriodSemester[] | undefined;
|
|
10
|
+
export declare const calculateKTHPeriodSemesterFromTillfallesperiod: (tillfallesperioder: Pick<Tillfallesperiod, "ForstaUndervisningsdatum" | "SistaUndervisningsdatum">[] | undefined, kthPeriods: KTHPeriodDefinition[] | undefined) => import("./KTHPeriod").KTHPeriodSemester[] | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.calculateKTHPeriodSemesterFromTillfallesperiod = void 0;
|
|
4
|
+
const collectionUtils_1 = require("../../utils/collectionUtils");
|
|
4
5
|
const typeChecking_1 = require("../../utils/typeChecking");
|
|
5
6
|
const KTHPeriod_1 = require("./KTHPeriod");
|
|
6
7
|
const matchDateToKTHPeriodYear_1 = require("./matchDateToKTHPeriodYear");
|
|
@@ -21,21 +22,9 @@ const calculateKTHPeriodSemesterFromTillfallesperiod = (tillfallesperioder, kthP
|
|
|
21
22
|
(0, matchDateToKTHPeriodYear_1.matchDateToKTHPeriodYear)(new Date(ForstaUndervisningsdatum), kthPeriods),
|
|
22
23
|
(0, matchDateToKTHPeriodYear_1.matchDateToKTHPeriodYear)(new Date(SistaUndervisningsdatum), kthPeriods),
|
|
23
24
|
];
|
|
24
|
-
return filterDefinedAndDistinctValues(periods);
|
|
25
|
+
return (0, collectionUtils_1.filterDefinedAndDistinctValues)(periods, item => item.period);
|
|
25
26
|
});
|
|
26
27
|
return result.sort(KTHPeriod_1.compareKTHPeriodSemester);
|
|
27
28
|
};
|
|
28
29
|
exports.calculateKTHPeriodSemesterFromTillfallesperiod = calculateKTHPeriodSemesterFromTillfallesperiod;
|
|
29
|
-
const filterDefinedAndDistinctValues = (kthPeriods) => {
|
|
30
|
-
const definedPeriods = kthPeriods.filter(typeChecking_1.isDefined);
|
|
31
|
-
const seenPeriods = new Set();
|
|
32
|
-
// We loop over the defined periods
|
|
33
|
-
const distinctFirst = definedPeriods.filter(period => {
|
|
34
|
-
if (seenPeriods.has(period.period))
|
|
35
|
-
return false; // If we've seen a period before, we do not want to have it once more, return false to filter out
|
|
36
|
-
seenPeriods.add(period.period); // Otherwise, we mark it as seen
|
|
37
|
-
return true; // and return true to keep it
|
|
38
|
-
});
|
|
39
|
-
return distinctFirst;
|
|
40
|
-
};
|
|
41
30
|
//# sourceMappingURL=calculateKTHPeriodSemesterFromTillfallesperiod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateKTHPeriodSemesterFromTillfallesperiod.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"calculateKTHPeriodSemesterFromTillfallesperiod.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.ts"],"names":[],"mappings":";;;AACA,iEAA4E;AAC5E,2DAA4D;AAC5D,2CAA2E;AAC3E,yEAAqE;AAErE;;;;;;GAMG;AACI,MAAM,8CAA8C,GAAG,CAC5D,kBAAgH,EAChH,UAA6C,EAC7C,EAAE;IACF,IAAI,CAAC,IAAA,gCAAiB,EAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5D,IAAI,CAAC,IAAA,gCAAiB,EAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IAEpD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,EAAE,EAAE;QAClG,MAAM,OAAO,GAAG;YACd,IAAA,mDAAwB,EAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC;YACxE,IAAA,mDAAwB,EAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,UAAU,CAAC;SACxE,CAAA;QAED,OAAO,IAAA,gDAA8B,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAA;AAC9C,CAAC,CAAA;AAjBY,QAAA,8CAA8C,kDAiB1D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { KTHPeriodSemester } from './KTHPeriod';
|
|
2
|
+
/**
|
|
3
|
+
* Takes a year and kthPeriodString.
|
|
4
|
+
* Will return a KTHPeriodSemester or undefined if the kthPeriodString could not be parsed
|
|
5
|
+
* @param year year for the KTHPeriod
|
|
6
|
+
* @param kthPeriodString kthPeriodString to match to a KTHPeriod, e.g. P1, P2
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare const createKTHPeriodSemester: (year: number, kthPeriodString: string) => KTHPeriodSemester | undefined;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createKTHPeriodSemester = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const typeChecking_1 = require("../../utils/typeChecking");
|
|
6
|
+
const KTHPeriod_1 = require("./KTHPeriod");
|
|
7
|
+
/**
|
|
8
|
+
* Takes a year and kthPeriodString.
|
|
9
|
+
* Will return a KTHPeriodSemester or undefined if the kthPeriodString could not be parsed
|
|
10
|
+
* @param year year for the KTHPeriod
|
|
11
|
+
* @param kthPeriodString kthPeriodString to match to a KTHPeriod, e.g. P1, P2
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
const createKTHPeriodSemester = (year, kthPeriodString) => {
|
|
15
|
+
const kthPeriod = (0, KTHPeriod_1.parseKTHPeriod)(kthPeriodString);
|
|
16
|
+
if (!(0, typeChecking_1.isDefined)(kthPeriod))
|
|
17
|
+
return undefined;
|
|
18
|
+
// We know that the response from matchKthPeriodToSemesterNumber will not be undefined, because the passed kthPeriod is of correct format.
|
|
19
|
+
const semesterNumber = (0, KTHPeriod_1.matchKthPeriodToSemesterNumber)(kthPeriod);
|
|
20
|
+
return {
|
|
21
|
+
period: kthPeriod,
|
|
22
|
+
semester: new utils_1.AcademicSemester(year, semesterNumber),
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
exports.createKTHPeriodSemester = createKTHPeriodSemester;
|
|
26
|
+
//# sourceMappingURL=createKTHPeriodSemester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createKTHPeriodSemester.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/createKTHPeriodSemester.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAC9C,2DAAoD;AACpD,2CAA+F;AAE/F;;;;;;GAMG;AACI,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,eAAuB,EAAiC,EAAE;IAC9G,MAAM,SAAS,GAAG,IAAA,0BAAc,EAAC,eAAe,CAAC,CAAA;IAEjD,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,IAAI,EAAE,cAAc,CAAC;KACrD,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,uBAAuB,2BAYnC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractKTHPeriodSemesterFromLasperiodsfordelning = void 0;
|
|
4
|
-
const utils_1 = require("../../utils");
|
|
5
4
|
const typeChecking_1 = require("../../utils/typeChecking");
|
|
5
|
+
const createKTHPeriodSemester_1 = require("./createKTHPeriodSemester");
|
|
6
6
|
const KTHPeriod_1 = require("./KTHPeriod");
|
|
7
7
|
const extractKTHPeriodSemesterFromLasperiodsfordelning = (tillfallesperioder) => {
|
|
8
8
|
if (!(0, typeChecking_1.isArrayWithValues)(tillfallesperioder))
|
|
@@ -23,14 +23,6 @@ exports.extractKTHPeriodSemesterFromLasperiodsfordelning = extractKTHPeriodSemes
|
|
|
23
23
|
const strictIsoDate = /^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;
|
|
24
24
|
const isStrictIsoDate = (s) => strictIsoDate.test(s);
|
|
25
25
|
const extractKHTPeriodFromLasperiodsfordelning = (yearOfFirstTuitionDate) => ({ Lasperiodskod }) => {
|
|
26
|
-
|
|
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
|
-
};
|
|
26
|
+
return (0, createKTHPeriodSemester_1.createKTHPeriodSemester)(yearOfFirstTuitionDate, Lasperiodskod);
|
|
35
27
|
};
|
|
36
28
|
//# sourceMappingURL=extractKTHPeriodSemesterFromLasperiodsfordelning.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractKTHPeriodSemesterFromLasperiodsfordelning.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"extractKTHPeriodSemesterFromLasperiodsfordelning.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.ts"],"names":[],"mappings":";;;AACA,2DAAuE;AACvE,uEAAmE;AACnE,2CAAyE;AAMlE,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,EAAiC,EAAE;IAChG,OAAO,IAAA,iDAAuB,EAAC,sBAAsB,EAAE,aAAa,CAAC,CAAA;AACvE,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './KTHPeriod/createKTHPeriodSemester';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./KTHPeriod/createKTHPeriodSemester"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAmD"}
|
|
@@ -28,7 +28,7 @@ const mapCourseInstance = (item, language, partOfProgramme) => {
|
|
|
28
28
|
const startperiod = (0, ladok_attributvarde_utils_1.extractStartPeriod)(attributeValues);
|
|
29
29
|
return {
|
|
30
30
|
uid: item.tillfalle_uid,
|
|
31
|
-
utbildningstyp: (0, creditsUtil_1.getCreditsUnit)((0, ladok_attributvarde_utils_1.extractUtbildningstyp)(item.instans.Attributvarden), language), // TODO
|
|
31
|
+
utbildningstyp: (0, creditsUtil_1.getCreditsUnit)((0, ladok_attributvarde_utils_1.extractUtbildningstyp)(item.instans.Attributvarden), language), // TODO why is this creditUnit and not utbildningstyp?
|
|
32
32
|
status: (0, ladok_attributvarde_utils_1.extractLadokStatus)(item.Attributvarden),
|
|
33
33
|
installt: (_a = (0, ladok_attributvarde_utils_1.extractBoolean)(item.Attributvarden, 'installt')) !== null && _a !== void 0 ? _a : false,
|
|
34
34
|
tillfalleskod: (0, ladok_attributvarde_utils_1.extractString)(attributeValues, 'utbildning.attribut.utbildningstillfalleskod'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourseInstance.js","sourceRoot":"","sources":["../src/mapCourseInstance.ts"],"names":[],"mappings":";;;AAAA,8EAWuC;AAEvC,mCAOgB;AAChB,qDAAoD;AA+D7C,MAAM,iBAAiB,GAAG,CAC/B,IAAmE,EACnE,QAAkB,EAClB,eAAmC,EACnB,EAAE;;IAClB,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAA;IAE3C,MAAM,QAAQ,GAAG;QACf,EAAE,EAAE,IAAA,yCAAa,EAAC,eAAe,EAAE,2CAA2C,EAAE,MAAM,CAAC;QACvF,EAAE,EAAE,IAAA,yCAAa,EAAC,eAAe,EAAE,2CAA2C,EAAE,MAAM,CAAC;KACxF,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,EAAE,EAAE,IAAA,yCAAa,EAAC,eAAe,EAAE,2CAA2C,CAAC;QAC/E,EAAE,EAAE,IAAA,yCAAa,EAAC,eAAe,EAAE,2CAA2C,CAAC;KAChF,CAAA;IAED,MAAM,eAAe,GAAG;QACtB,EAAE,EAAE,IAAA,yCAAa,EAAC,eAAe,EAAE,kDAAkD,EAAE,MAAM,CAAC;QAC9F,EAAE,EAAE,IAAA,yCAAa,EAAC,eAAe,EAAE,kDAAkD,EAAE,MAAM,CAAC;KAC/F,CAAA;IAED,MAAM,iBAAiB,GAAG,IAAA,4CAAgB,EAAC,eAAe,EAAE,uCAAuC,CAAC,CAAA;IACpG,MAAM,gBAAgB,GAAG,IAAA,4CAAgB,EAAC,eAAe,EAAE,sCAAsC,CAAC,CAAA;IAClG,MAAM,kBAAkB,GAAG,IAAA,4CAAgB,EAAC,eAAe,EAAE,wCAAwC,CAAC,CAAA;IACtG,MAAM,SAAS,GAAG,IAAA,4CAAgB,EAAC,eAAe,EAAE,+BAA+B,CAAC,CAAA;IACpF,MAAM,iBAAiB,GAAG,IAAA,4CAAgB,EAAC,eAAe,EAAE,uCAAuC,CAAC,CAAA;IACpG,MAAM,UAAU,GAAG,IAAA,6CAAiB,EAAC,eAAe,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,IAAA,8CAAkB,EAAC,eAAe,CAAC,CAAA;IAEvD,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,aAAa;QACvB,cAAc,EAAE,IAAA,4BAAc,EAAC,IAAA,iDAAqB,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAE,EAAE,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"mapCourseInstance.js","sourceRoot":"","sources":["../src/mapCourseInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LadokStatus } from '@kth/ladok-attributvarde-utils';
|
|
2
|
-
import { SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
+
import { PeriodItem, SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
|
|
3
3
|
import { Language, TranslatedGrunddata, TranslatedOrganisation, TranslatedUtbildningstyp } from './utils/languageUtil';
|
|
4
|
+
import { KTHPeriodSemester } from './kth/KTHPeriod/KTHPeriod';
|
|
4
5
|
export type SearchResultPeriod = {
|
|
5
6
|
startperiod: string;
|
|
6
7
|
forstaUndervisningsdatum?: {
|
|
@@ -17,7 +18,7 @@ export type SearchResultPeriod = {
|
|
|
17
18
|
};
|
|
18
19
|
tillfallesperioderNummer: number;
|
|
19
20
|
};
|
|
20
|
-
export type
|
|
21
|
+
export type CourseInstanceResult = {
|
|
21
22
|
versionsnummer: number;
|
|
22
23
|
kod: string;
|
|
23
24
|
benamning: string;
|
|
@@ -36,8 +37,9 @@ export type CourseSearchResult = {
|
|
|
36
37
|
code: string;
|
|
37
38
|
inDigits: string | null;
|
|
38
39
|
};
|
|
39
|
-
period?: SearchResultPeriod;
|
|
40
|
-
isMiljo?: boolean;
|
|
41
40
|
status?: LadokStatus;
|
|
41
|
+
isMiljo?: boolean;
|
|
42
|
+
kthPeriods: KTHPeriodSemester[];
|
|
43
|
+
startingKTHPeriod: KTHPeriodSemester | undefined;
|
|
42
44
|
};
|
|
43
|
-
export declare const
|
|
45
|
+
export declare const mapCourseInstanceResult: (courseInstance: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, periodItems: PeriodItem[], language: Language) => CourseInstanceResult;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.mapCourseInstanceResult = void 0;
|
|
4
4
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
5
5
|
const languageUtil_1 = require("./utils/languageUtil");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
7
7
|
const creditsUtil_1 = require("./utils/creditsUtil");
|
|
8
8
|
const schoolUtil_1 = require("./utils/schoolUtil");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const getKTHPeriodSemesters_1 = require("./kth/KTHPeriod/getKTHPeriodSemesters");
|
|
10
|
+
// TODO this should be refactored together with mapCourseInstance
|
|
11
|
+
const mapCourseInstanceResult = (courseInstance, periodItems, language) => {
|
|
12
|
+
var _a, _b, _c;
|
|
12
13
|
const benamning = {
|
|
13
14
|
sv: (0, ladok_attributvarde_utils_1.extractString)(courseInstance.instans.Attributvarden, 'utbildning.attribut.svensk.benamning'),
|
|
14
15
|
en: (0, ladok_attributvarde_utils_1.extractString)(courseInstance.instans.Attributvarden, 'utbildning.attribut.engelsk.benamning'),
|
|
@@ -26,6 +27,8 @@ const mapKursTillfalleResult = (courseInstance, language) => {
|
|
|
26
27
|
const schoolCode = (0, schoolUtil_1.extractSchoolCodeFromOrganisation)(organisation, language);
|
|
27
28
|
const omfattning = (_b = (0, ladok_attributvarde_utils_1.extractString)(courseInstance.instans.Attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _b !== void 0 ? _b : '';
|
|
28
29
|
const isMiljo = (0, ladok_attributvarde_utils_1.extractIsMiljo)(courseInstance.instans.Attributvarden);
|
|
30
|
+
const kthPeriods = (0, getKTHPeriodSemesters_1.getKTHPeriodSemesters)(courseInstance.Tillfallesperioder, periodItems);
|
|
31
|
+
const startingKTHPeriod = kthPeriods.at(0);
|
|
29
32
|
return {
|
|
30
33
|
versionsnummer: (0, ladok_attributvarde_utils_1.extractVersionNumber)(courseInstance.instans.Attributvarden),
|
|
31
34
|
kod: (0, ladok_attributvarde_utils_1.extractString)(courseInstance.instans.Attributvarden, 'utbildning.attribut.kod'),
|
|
@@ -44,24 +47,12 @@ const mapKursTillfalleResult = (courseInstance, language) => {
|
|
|
44
47
|
code: startperiod.code,
|
|
45
48
|
inDigits: (0, utils_1.transformPeriodInDigits)(startperiod.code),
|
|
46
49
|
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
forstaUndervisningsdatum: Object.assign({ date: (_d = courseInstance.Tillfallesperioder.at(0)) === null || _d === void 0 ? void 0 : _d.ForstaUndervisningsdatum, period: (0, utils_1.getKthStudyPeriod)(new Date((_e = courseInstance.Tillfallesperioder.at(0)) === null || _e === void 0 ? void 0 : _e.ForstaUndervisningsdatum), {
|
|
50
|
-
code: startperiod === null || startperiod === void 0 ? void 0 : startperiod.code,
|
|
51
|
-
startDate: startperiod && new Date(startperiod.startDay),
|
|
52
|
-
endDate: startperiod && new Date(startperiod.lastDay),
|
|
53
|
-
}, 'start') }, (0, utils_1.getYearAndWeek)((_f = courseInstance.Tillfallesperioder.at(0)) === null || _f === void 0 ? void 0 : _f.ForstaUndervisningsdatum)),
|
|
54
|
-
sistaUndervisningsdatum: Object.assign({ date: (_g = courseInstance.Tillfallesperioder.at(-1)) === null || _g === void 0 ? void 0 : _g.SistaUndervisningsdatum, period: (0, utils_1.getKthStudyPeriod)(new Date((_h = courseInstance.Tillfallesperioder.at(-1)) === null || _h === void 0 ? void 0 : _h.SistaUndervisningsdatum), {
|
|
55
|
-
code: startperiod === null || startperiod === void 0 ? void 0 : startperiod.code,
|
|
56
|
-
startDate: startperiod && new Date(startperiod.startDay),
|
|
57
|
-
endDate: startperiod && new Date(startperiod.lastDay),
|
|
58
|
-
}, 'end') }, (0, utils_1.getYearAndWeek)((_j = courseInstance.Tillfallesperioder.at(-1)) === null || _j === void 0 ? void 0 : _j.SistaUndervisningsdatum)),
|
|
59
|
-
tillfallesperioderNummer: courseInstance.Tillfallesperioder.length,
|
|
60
|
-
},
|
|
50
|
+
kthPeriods,
|
|
51
|
+
startingKTHPeriod,
|
|
61
52
|
schoolCode,
|
|
62
53
|
isMiljo,
|
|
63
54
|
status: (0, ladok_attributvarde_utils_1.extractLadokStatus)(courseInstance.Attributvarden),
|
|
64
55
|
};
|
|
65
56
|
};
|
|
66
|
-
exports.
|
|
67
|
-
//# sourceMappingURL=
|
|
57
|
+
exports.mapCourseInstanceResult = mapCourseInstanceResult;
|
|
58
|
+
//# sourceMappingURL=mapCourseInstanceResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapCourseInstanceResult.js","sourceRoot":"","sources":["../src/mapCourseInstanceResult.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,46 +10,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.createSearchApi = void 0;
|
|
13
|
-
const searchUtils_1 = require("./utils/searchUtils");
|
|
14
|
-
const getAllEntitiesByUseOfContinuation_1 = require("../utils/getAllEntitiesByUseOfContinuation");
|
|
15
|
-
const mapSearchResult_1 = require("../mapSearchResult");
|
|
16
|
-
const groupSearchResults_1 = require("../groupSearchResults");
|
|
17
|
-
const errorUtils_1 = require("../utils/errorUtils");
|
|
18
|
-
const mapCourseInstanceSearchDTO_1 = require("./utils/mapCourseInstanceSearchDTO");
|
|
19
13
|
const searchService_1 = require("./searchService");
|
|
20
|
-
const supportService_1 = require("../supportApis/supportService");
|
|
21
14
|
const SearchError_1 = require("../utils/SearchError");
|
|
22
|
-
const continuationConfig_1 = require("./continuationConfig");
|
|
23
|
-
const statusUtils_1 = require("../utils/statusUtils");
|
|
24
15
|
const createSearchApi = (ladokClient) => {
|
|
25
16
|
const searchService = new searchService_1.SearchService(ladokClient);
|
|
26
|
-
const supportService = new supportService_1.SupportService(ladokClient);
|
|
27
17
|
return {
|
|
28
|
-
searchCourseInstances: (
|
|
29
|
-
try {
|
|
30
|
-
const cleanSearchParams = (0, searchUtils_1.validateAndCleanSearchParams)(searchParams);
|
|
31
|
-
const departmentList = yield supportService.getSchoolsWithDepartmentsForSearch(language);
|
|
32
|
-
const { requestQuery, filterPeriod } = (0, searchUtils_1.prepareSearchRequestQueryForKursTillfallen)(cleanSearchParams, departmentList);
|
|
33
|
-
const { allEntities: allCourses } = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalle, requestQuery, {
|
|
34
|
-
maxSearchResultsToReturn: continuationConfig_1.SEARCH_MAX_SEARCH_RESULTS_TO_RETURN,
|
|
35
|
-
maxContinuationIterations: continuationConfig_1.SEARCH_MAX_CONTINUATION_ITERATIONS,
|
|
36
|
-
});
|
|
37
|
-
const mappedCourses = allCourses.map(course => (0, mapSearchResult_1.mapKursTillfalleResult)(course, language));
|
|
38
|
-
const noDraftCourses = (0, statusUtils_1.removeDrafts)(mappedCourses);
|
|
39
|
-
const groupedCourses = (0, groupSearchResults_1.groupSearchResults)(noDraftCourses, filterPeriod);
|
|
40
|
-
// TODO Remove this once we have a query parameter to filter for miljö courses
|
|
41
|
-
const courseVersionsToShow = (0, searchUtils_1.possiblyFilterByMiljo)(groupedCourses, cleanSearchParams.onlyMHU);
|
|
42
|
-
const courseInstanceSearchDTOs = courseVersionsToShow.map(mapCourseInstanceSearchDTO_1.mapCourseInstanceSearchDTO);
|
|
43
|
-
return { searchHits: courseInstanceSearchDTOs };
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
const searchError = (0, errorUtils_1.toSearchError)(error);
|
|
47
|
-
return {
|
|
48
|
-
searchHits: [],
|
|
49
|
-
errorCode: searchError.errorCode,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}),
|
|
18
|
+
searchCourseInstances: searchService.searchCourseInstances.bind(searchService),
|
|
53
19
|
searchCourseVersions: searchService.searchCourseVersions.bind(searchService),
|
|
54
20
|
getDepartmentWithCourseList: (departmentParams, language) => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
21
|
const { department, courses } = yield searchService.getDepartmentWithCourseList(departmentParams, language);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSearchApi.js","sourceRoot":"","sources":["../../src/search/createSearchApi.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"createSearchApi.js","sourceRoot":"","sources":["../../src/search/createSearchApi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,mDAA+C;AAC/C,sDAAsD;AAE/C,MAAM,eAAe,GAAG,CAAC,WAAsC,EAAa,EAAE;IACnF,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,WAAW,CAAC,CAAA;IACpD,OAAO;QACL,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC;QAC9E,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;AA7BY,QAAA,eAAe,mBA6B3B"}
|
|
@@ -4,10 +4,12 @@ import { Language } from '../utils';
|
|
|
4
4
|
import { OrganisationService } from '../supportApis/organisationService';
|
|
5
5
|
import { SupportService } from '../supportApis/supportService';
|
|
6
6
|
import { DepartmentFlat } from '../supportApis/types';
|
|
7
|
+
import { PeriodService } from '../supportApis/PeriodService';
|
|
7
8
|
export declare class SearchService {
|
|
8
9
|
private ladokClient;
|
|
9
10
|
organisationService: OrganisationService;
|
|
10
11
|
supportService: SupportService;
|
|
12
|
+
periodService: PeriodService;
|
|
11
13
|
constructor(ladokClient: LadokMellanlagerApiClient);
|
|
12
14
|
searchCourseVersions(searchParams: SearchParams, language: Language): Promise<{
|
|
13
15
|
searchHits: CourseVersionDTO[];
|
|
@@ -16,6 +18,13 @@ export declare class SearchService {
|
|
|
16
18
|
searchHits: never[];
|
|
17
19
|
errorCode: import("../utils/SearchError").SearchErrorCode;
|
|
18
20
|
}>;
|
|
21
|
+
searchCourseInstances(searchParams: SearchParams, language: Language): Promise<{
|
|
22
|
+
searchHits: import("./types").CourseInstanceSearchDTO[];
|
|
23
|
+
errorCode?: undefined;
|
|
24
|
+
} | {
|
|
25
|
+
searchHits: never[];
|
|
26
|
+
errorCode: import("../utils/SearchError").SearchErrorCode;
|
|
27
|
+
}>;
|
|
19
28
|
private searchLatestApprovedCourseVersions;
|
|
20
29
|
getDepartmentWithCourseList({ organisation, utbildningsniva: rawUtbildningsniva }: DepartmentParams, language: Language): Promise<{
|
|
21
30
|
department: DepartmentFlat | undefined;
|