@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.
Files changed (71) hide show
  1. package/dist/attributVardenConstants.d.ts +0 -3
  2. package/dist/attributVardenConstants.js +7 -4
  3. package/dist/attributVardenConstants.js.map +1 -1
  4. package/dist/createApiClient.js +59 -84
  5. package/dist/createApiClient.js.map +1 -1
  6. package/dist/kth/KTHPeriod/KTHPeriod.d.ts +19 -0
  7. package/dist/kth/KTHPeriod/KTHPeriod.js +60 -0
  8. package/dist/kth/KTHPeriod/KTHPeriod.js.map +1 -0
  9. package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.d.ts +10 -0
  10. package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js +41 -0
  11. package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js.map +1 -0
  12. package/dist/kth/KTHPeriod/convertToKTHPeriods.d.ts +12 -0
  13. package/dist/kth/KTHPeriod/convertToKTHPeriods.js +76 -0
  14. package/dist/kth/KTHPeriod/convertToKTHPeriods.js.map +1 -0
  15. package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.d.ts +7 -0
  16. package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js +36 -0
  17. package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js.map +1 -0
  18. package/dist/kth/KTHPeriod/getKTHPeriodSemesters.d.ts +16 -0
  19. package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js +28 -0
  20. package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js.map +1 -0
  21. package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.d.ts +9 -0
  22. package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js +21 -0
  23. package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js.map +1 -0
  24. package/dist/kth/KTHPeriod/testdata/kthPeriods.d.ts +8 -0
  25. package/dist/kth/KTHPeriod/testdata/kthPeriods.js +43 -0
  26. package/dist/kth/KTHPeriod/testdata/kthPeriods.js.map +1 -0
  27. package/dist/kth/extractFunctions/extractBasicCourseData.d.ts +4 -1
  28. package/dist/kth/extractFunctions/extractBasicCourseData.js +6 -5
  29. package/dist/kth/extractFunctions/extractBasicCourseData.js.map +1 -1
  30. package/dist/mapCourseRound.d.ts +8 -15
  31. package/dist/mapCourseRound.js.map +1 -1
  32. package/dist/mapCourseSyllabus.d.ts +4 -1
  33. package/dist/mapCourseSyllabus.js.map +1 -1
  34. package/dist/programme/createProgrammeApi.js +2 -2
  35. package/dist/programme/createProgrammeApi.js.map +1 -1
  36. package/dist/search/createSearchApi.js +1 -1
  37. package/dist/search/createSearchApi.js.map +1 -1
  38. package/dist/search/searchService.js +1 -1
  39. package/dist/search/searchService.js.map +1 -1
  40. package/dist/search/types.d.ts +4 -1
  41. package/dist/search/utils/searchUtils.d.ts +4 -4
  42. package/dist/search/utils/searchUtils.js +2 -10
  43. package/dist/search/utils/searchUtils.js.map +1 -1
  44. package/dist/supportApis/PeriodService.d.ts +8 -0
  45. package/dist/supportApis/PeriodService.js +46 -0
  46. package/dist/supportApis/PeriodService.js.map +1 -0
  47. package/dist/utils/AcademicSemester.d.ts +1 -0
  48. package/dist/utils/AcademicSemester.js +5 -0
  49. package/dist/utils/AcademicSemester.js.map +1 -1
  50. package/dist/utils/getAllEntitiesByUseOfContinuation.d.ts +6 -2
  51. package/dist/utils/getAllEntitiesByUseOfContinuation.js +4 -2
  52. package/dist/utils/getAllEntitiesByUseOfContinuation.js.map +1 -1
  53. package/dist/utils/languageUtil.d.ts +5 -0
  54. package/dist/utils/languageUtil.js +11 -2
  55. package/dist/utils/languageUtil.js.map +1 -1
  56. package/dist/utils/mergeResponses.d.ts +2 -1
  57. package/dist/utils/mergeResponses.js +24 -6
  58. package/dist/utils/mergeResponses.js.map +1 -1
  59. package/dist/utils/periodUtil.d.ts +6 -0
  60. package/dist/utils/periodUtil.js +12 -2
  61. package/dist/utils/periodUtil.js.map +1 -1
  62. package/dist/utils/programUtil.d.ts +3 -3
  63. package/dist/utils/programUtil.js +38 -52
  64. package/dist/utils/programUtil.js.map +1 -1
  65. package/dist/utils/responseUtils.d.ts +4 -0
  66. package/dist/utils/responseUtils.js +17 -0
  67. package/dist/utils/responseUtils.js.map +1 -0
  68. package/dist/utils/typeChecking.d.ts +6 -0
  69. package/dist/utils/typeChecking.js +8 -1
  70. package/dist/utils/typeChecking.js.map +1 -1
  71. package/package.json +2 -2
@@ -1,9 +1,6 @@
1
- export declare const ATTRIBUT_VARDEN_FOR_COURSE_VERSIONS: string;
2
1
  export declare const ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS: string;
3
- export declare const ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH: string;
4
2
  export declare const INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH: string;
5
3
  export declare const INSTANS_ATTRIBUT_VARDEN_FOR_PROGRAM_VERSION: string;
6
- export declare const ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS: string;
7
4
  export declare const INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS: string;
8
5
  export declare const ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE: string;
9
6
  export declare const INSTANS_ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE: string;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INSTANS_ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE = exports.ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE = exports.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS = exports.ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS = exports.INSTANS_ATTRIBUT_VARDEN_FOR_PROGRAM_VERSION = exports.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH = exports.ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH = exports.ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS = exports.ATTRIBUT_VARDEN_FOR_COURSE_VERSIONS = void 0;
4
- exports.ATTRIBUT_VARDEN_FOR_COURSE_VERSIONS = [
3
+ exports.INSTANS_ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE = exports.ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE = exports.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS = exports.INSTANS_ATTRIBUT_VARDEN_FOR_PROGRAM_VERSION = exports.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH = exports.ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS = void 0;
4
+ // Results in more than 20 attributvarden
5
+ const ATTRIBUT_VARDEN_FOR_COURSE_VERSIONS = [
5
6
  'utbildning.attribut.betygsskala',
6
7
  'utbildning.attribut.huvudomrade.och.successiv.fordjupning',
7
8
  'utbildning.attribut.organisation',
@@ -47,7 +48,8 @@ exports.ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS = [
47
48
  'utbildning.lokalt.attribut.29.fullsatt',
48
49
  'utbildning.attribut.startperiod',
49
50
  ].join(',');
50
- exports.ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH = [
51
+ // Results in more than 20 attributvarden
52
+ const ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS_SEARCH = [
51
53
  ...exports.ATTRIBUT_VARDEN_FOR_COURSE_ROUNDS.split(','),
52
54
  'utbildning.attribut.organisation',
53
55
  'utbildning.attribut.startperiod',
@@ -74,7 +76,8 @@ exports.INSTANS_ATTRIBUT_VARDEN_FOR_PROGRAM_VERSION = [
74
76
  'utbildning.attribut.omfattning',
75
77
  'utbildning.attribut.examen.uppgift.for.emil',
76
78
  ].join(',');
77
- exports.ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS = [
79
+ // Results in more than 20 attributvarden
80
+ const ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS = [
78
81
  'utbildning.attribut.omfattning',
79
82
  'utbildning.attribut.betygsskala',
80
83
  'utbildning.lokalt.attribut.29.utgava',
@@ -1 +1 @@
1
- {"version":3,"file":"attributVardenConstants.js","sourceRoot":"","sources":["../src/attributVardenConstants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attributVardenConstants.js","sourceRoot":"","sources":["../src/attributVardenConstants.ts"],"names":[],"mappings":"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"}
@@ -29,11 +29,10 @@ const createSupportApis_1 = require("./supportApis/createSupportApis");
29
29
  const queryConstants_1 = require("./queryConstants");
30
30
  const createProgrammeApi_1 = require("./programme/createProgrammeApi");
31
31
  const mergeResponses_1 = require("./utils/mergeResponses");
32
- const filterAndMapCourseRounds = (response, language, partOfProgrammes) => {
33
- if (response.type === 'error') {
34
- throw new Error(`API error: ${response.responseInfo.message}`);
35
- }
36
- return response.items
32
+ const getAllEntitiesByUseOfContinuation_1 = require("./utils/getAllEntitiesByUseOfContinuation");
33
+ const responseUtils_1 = require("./utils/responseUtils");
34
+ const filterAndMapCourseRounds = (items, language, partOfProgrammes) => {
35
+ return items
37
36
  .map(x => (0, mapCourseRound_1.mapCourseRound)(x, language, partOfProgrammes === null || partOfProgrammes === void 0 ? void 0 : partOfProgrammes[x.tillfalle_uid]))
38
37
  .filter(x => x !== undefined)
39
38
  .filter(utils_1.removeCourseRoundsBasedOnTillfalleskod)
@@ -49,18 +48,20 @@ const createApiClient = (config) => {
49
48
  const ladokClient = (0, ladok_mellanlager_client_1.createClient)(config);
50
49
  return {
51
50
  getLatestCourseVersion: (courseCode, language) => __awaiter(void 0, void 0, void 0, function* () {
52
- const result = yield ladokClient.sokUtbildningsInstansSlim({
51
+ const result = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokUtbildningsInstans, {
53
52
  kodEllerBenamning: courseCode,
54
53
  striktKod: 'true',
55
- instansAttributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_COURSE_VERSIONS,
54
+ antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR,
55
+ utbildningstypgrundtyp: 'KURS',
56
+ }, {
57
+ maxSearchResultsToReturn: 1000,
58
+ maxContinuationIterations: 10,
56
59
  });
57
- if (result.type === 'error') {
58
- return Object.assign({}, result.responseInfo);
59
- }
60
- if (result.searchMeta.pageResultSize === 0) {
60
+ const allEntities = (0, responseUtils_1.throwIfContinuationError)(result);
61
+ if (allEntities.length === 0) {
61
62
  return Object.assign(Object.assign({}, result.responseInfo), { statusCode: 404, message: 'not found' });
62
63
  }
63
- const course = result.items
64
+ const course = allEntities
64
65
  .sort((a, b) => (0, ladok_attributvarde_utils_1.extractVersionNumber)(b.Attributvarden) - (0, ladok_attributvarde_utils_1.extractVersionNumber)(a.Attributvarden))
65
66
  .at(0);
66
67
  const gradingScalesCodes = yield (0, gradingScalesUtils_1.getGradingScalesCodes)(ladokClient);
@@ -71,61 +72,62 @@ const createApiClient = (config) => {
71
72
  const requestObject = {
72
73
  kodEllerBenamning: courseCode,
73
74
  striktKod: 'true',
74
- instansAttributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_COURSE_VERSIONS,
75
+ antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR,
76
+ utbildningstypgrundtyp: 'KURS',
75
77
  };
76
- const [resultActive, resultCancelled] = yield Promise.all([
77
- ladokClient.sokUtbildningsInstansSlim(Object.assign({}, requestObject)),
78
- ladokClient.sokUtbildningsInstansSlim(Object.assign(Object.assign({}, requestObject), { avvecklad: 'true' })),
78
+ const [resultActiveCourseVersions, resultDiscontinuedCourseVersions] = yield Promise.all([
79
+ (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokUtbildningsInstans, requestObject),
80
+ (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokUtbildningsInstans, Object.assign(Object.assign({}, requestObject), { avvecklad: 'true' })),
79
81
  ]);
80
- const resultActiveAndCancelledVersions = (0, mergeResponses_1.mergeApiResponses)(resultActive, resultCancelled, item => item.instans_uid);
81
- if (resultActiveAndCancelledVersions.type === 'error') {
82
- return Object.assign({}, resultActiveAndCancelledVersions.responseInfo);
83
- }
84
- if (resultActiveAndCancelledVersions.searchMeta.pageResultSize === 0) {
85
- return Object.assign(Object.assign({}, resultActiveAndCancelledVersions.responseInfo), { statusCode: 404, message: 'not found' });
82
+ const allEntitiesActive = (0, responseUtils_1.throwIfContinuationError)(resultActiveCourseVersions);
83
+ const allEntitiesCancelled = (0, responseUtils_1.throwIfContinuationError)(resultDiscontinuedCourseVersions);
84
+ const activeAndCancelledResponseInfo = (0, mergeResponses_1.mergeResponseInfo)(resultActiveCourseVersions.responseInfo, resultDiscontinuedCourseVersions.responseInfo);
85
+ const allEntitiesActiveAndCancelledVersions = (0, mergeResponses_1.mergePlainArrays)(allEntitiesActive, allEntitiesCancelled, item => item.instans_uid);
86
+ if (allEntitiesActiveAndCancelledVersions.length === 0) {
87
+ return Object.assign(Object.assign({}, activeAndCancelledResponseInfo), { statusCode: 404, message: 'not found' });
86
88
  }
87
- const course = resultActiveAndCancelledVersions.items
89
+ const course = allEntitiesActiveAndCancelledVersions
88
90
  .sort((a, b) => (0, ladok_attributvarde_utils_1.extractVersionNumber)(b.Attributvarden) - (0, ladok_attributvarde_utils_1.extractVersionNumber)(a.Attributvarden))
89
91
  .at(0);
90
92
  const gradingScalesCodes = yield (0, gradingScalesUtils_1.getGradingScalesCodes)(ladokClient);
91
93
  const mappedCourse = (0, mapCourse_1.mapCourse)(course, language, gradingScalesCodes);
92
- return Object.assign(Object.assign({}, resultActiveAndCancelledVersions.responseInfo), mappedCourse);
94
+ return Object.assign(Object.assign({}, activeAndCancelledResponseInfo), mappedCourse);
93
95
  }),
94
96
  Search: (0, createSearchApi_1.createSearchApi)(ladokClient),
95
97
  Programme: (0, createProgrammeApi_1.createProgrammeApi)(ladokClient),
96
98
  getActiveCourseRounds: (courseCode, language) => __awaiter(void 0, void 0, void 0, function* () {
97
99
  const currentDate = (0, utils_1.getFormattedCurrentDate)();
98
- const result = yield ladokClient.sokKursTillfalleSlim(Object.assign(Object.assign({}, DEFAULT_COURSE_ROUNDS_QUERY_PARAMS), { kodEllerBenamning: courseCode, pagaendeDatum: currentDate }));
99
- return filterAndMapCourseRounds(result, language);
100
+ const result = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalleSlim, Object.assign(Object.assign({}, DEFAULT_COURSE_ROUNDS_QUERY_PARAMS), { kodEllerBenamning: courseCode, pagaendeDatum: currentDate }));
101
+ const allEntities = (0, responseUtils_1.throwIfContinuationError)(result);
102
+ return filterAndMapCourseRounds(allEntities, language);
100
103
  }),
101
104
  getActiveAndFutureCourseRounds: (courseCode, language) => __awaiter(void 0, void 0, void 0, function* () {
102
105
  const currentDate = (0, utils_1.getFormattedCurrentDate)();
103
106
  const requestObject = Object.assign(Object.assign({}, DEFAULT_COURSE_ROUNDS_QUERY_PARAMS), { kodEllerBenamning: courseCode });
104
107
  const [resultPagaendeDatum, resultTerminsKodStart] = yield Promise.all([
105
- ladokClient.sokKursTillfalleSlim(Object.assign({ pagaendeDatum: currentDate }, requestObject)),
106
- ladokClient.sokKursTillfalleSlim(Object.assign({ terminkodStart: (0, courseSyllabusUtil_1.getSemester)(currentDate) }, requestObject)),
108
+ (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalleSlim, Object.assign({ pagaendeDatum: currentDate }, requestObject)),
109
+ (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalleSlim, Object.assign({ terminkodStart: (0, courseSyllabusUtil_1.getSemester)(currentDate) }, requestObject)),
107
110
  ]);
108
- const resultActiveAndFutureRounds = (0, mergeResponses_1.mergeApiResponses)(resultPagaendeDatum, resultTerminsKodStart, item => item.tillfalle_uid);
109
- if (!resultActiveAndFutureRounds.items) {
110
- return filterAndMapCourseRounds(resultActiveAndFutureRounds, language);
111
+ const allEntitiesPagaendeDatum = (0, responseUtils_1.throwIfContinuationError)(resultPagaendeDatum);
112
+ const allEntitiesTerminsKodStart = (0, responseUtils_1.throwIfContinuationError)(resultTerminsKodStart);
113
+ const allEntitiesActiveAndFutureRounds = (0, mergeResponses_1.mergePlainArrays)(allEntitiesPagaendeDatum, allEntitiesTerminsKodStart, item => item.tillfalle_uid);
114
+ if (!allEntitiesActiveAndFutureRounds) {
115
+ return filterAndMapCourseRounds(allEntitiesActiveAndFutureRounds, language);
111
116
  }
112
117
  const periods = yield ladokClient.period(); // TODO: Use cached values
113
- if (periods.type !== 'success') {
114
- throw new Error(`API call failed: ${periods.responseInfo.apiError || 'Unknown error'}`);
115
- }
116
- if (typeof periods.data !== 'object') {
117
- throw new Error('periods.data is not an object.');
118
- }
119
- const partOfProgrammes = yield (0, partOfProgrammeUtil_1.getPartOfProgrammes)(resultActiveAndFutureRounds.items, periods.data.Period, ladokClient);
120
- return filterAndMapCourseRounds(resultActiveAndFutureRounds, language, partOfProgrammes);
118
+ const periodsData = (0, responseUtils_1.throwIfError)(periods);
119
+ const partOfProgrammes = yield (0, partOfProgrammeUtil_1.getPartOfProgrammes)(allEntitiesActiveAndFutureRounds, periodsData.Period, ladokClient);
120
+ return filterAndMapCourseRounds(allEntitiesActiveAndFutureRounds, language, partOfProgrammes);
121
121
  }),
122
122
  getCourseRoundsFromPeriod: (courseCode, fromPeriod, language) => __awaiter(void 0, void 0, void 0, function* () {
123
- const result = yield ladokClient.sokKursTillfalleSlim(Object.assign(Object.assign({}, DEFAULT_COURSE_ROUNDS_QUERY_PARAMS), { kodEllerBenamning: courseCode, terminkodStart: fromPeriod }));
124
- return filterAndMapCourseRounds(result, language);
123
+ const result = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalleSlim, Object.assign(Object.assign({}, DEFAULT_COURSE_ROUNDS_QUERY_PARAMS), { kodEllerBenamning: courseCode, terminkodStart: fromPeriod }));
124
+ const allEntities = (0, responseUtils_1.throwIfContinuationError)(result);
125
+ return filterAndMapCourseRounds(allEntities, language);
125
126
  }),
126
127
  getCourseRoundsForExactStartPeriod: (courseCode, startPeriod, language) => __awaiter(void 0, void 0, void 0, function* () {
127
- const result = yield ladokClient.sokKursTillfalleSlim(Object.assign(Object.assign({}, DEFAULT_COURSE_ROUNDS_QUERY_PARAMS), { kodEllerBenamning: courseCode, startPeriod: startPeriod }));
128
- return filterAndMapCourseRounds(result, language);
128
+ const result = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokKursTillfalleSlim, Object.assign(Object.assign({}, DEFAULT_COURSE_ROUNDS_QUERY_PARAMS), { kodEllerBenamning: courseCode, startPeriod: startPeriod }));
129
+ const allEntities = (0, responseUtils_1.throwIfContinuationError)(result);
130
+ return filterAndMapCourseRounds(allEntities, language);
129
131
  }),
130
132
  getUtbildningsPlan: (uid, language) => __awaiter(void 0, void 0, void 0, function* () {
131
133
  const result = yield ladokClient.planForUtbildningUtbildningsinstans(uid);
@@ -174,28 +176,15 @@ const createApiClient = (config) => {
174
176
  }),
175
177
  getCourseSyllabus: (courseCode, semester, language) => __awaiter(void 0, void 0, void 0, function* () {
176
178
  try {
177
- const result = yield ladokClient.sokPlanSlim({
179
+ const result = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokPlan, {
178
180
  kodEllerBenamning: courseCode,
179
181
  striktKod: 'true',
180
182
  tillstand: 'BESLUTAD',
181
- attributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS,
182
- instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS,
183
183
  });
184
- if (result.type !== 'success') {
185
- throw new Error(`API call failed: ${result.responseInfo.apiError || 'Unknown error'}`);
186
- }
187
- if (typeof result.data !== 'object') {
188
- throw new Error('result.data is not an object.');
189
- }
190
- const syllabuses = result.data;
184
+ const syllabuses = (0, responseUtils_1.throwIfContinuationError)(result);
191
185
  const periods = yield ladokClient.period(); // TODO: Use cached values
192
- if (periods.type !== 'success') {
193
- throw new Error(`API call failed: ${periods.responseInfo.apiError || 'Unknown error'}`);
194
- }
195
- if (typeof periods.data !== 'object') {
196
- throw new Error('periods.data is not an object.');
197
- }
198
- const activeSyllabus = (0, courseSyllabusUtil_1.getSyllabusForSemester)(semester, syllabuses, periods.data.Period);
186
+ const periodsData = (0, responseUtils_1.throwIfError)(periods);
187
+ const activeSyllabus = (0, courseSyllabusUtil_1.getSyllabusForSemester)(semester, syllabuses, periodsData.Period);
199
188
  if (!activeSyllabus) {
200
189
  throw new Error(`No syllabus found for course ${courseCode} in semester ${semester}.`);
201
190
  }
@@ -219,28 +208,21 @@ const createApiClient = (config) => {
219
208
  }),
220
209
  getCourseSyllabuses: (courseCode, language) => __awaiter(void 0, void 0, void 0, function* () {
221
210
  try {
222
- const result = yield ladokClient.sokPlanSlim({
211
+ const result = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokPlan, {
223
212
  kodEllerBenamning: courseCode,
224
213
  striktKod: 'true',
225
- attributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS,
226
- instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS,
227
214
  });
228
- if (result.type !== 'success') {
229
- throw new Error(`API call failed: ${result.responseInfo.apiError || 'Unknown error'}`);
230
- }
231
- if (typeof result.data !== 'object') {
232
- throw new Error('result.data is not an object.');
233
- }
234
- const data = Object.values(result.data);
235
- const syllabuses = data.slice(1); // Assume the first element is metadata, skip it.
215
+ const syllabuses = (0, responseUtils_1.throwIfContinuationError)(result);
216
+ const data = Object.values(syllabuses);
217
+ const syllabusesData = data.slice(1); // Assume the first element is metadata, skip it.
236
218
  const gradingScalesCodes = yield (0, gradingScalesUtils_1.getGradingScalesCodes)(ladokClient);
237
- const UtbildningsinstansUID = syllabuses[1].UtbildningsinstansUID;
219
+ const UtbildningsinstansUID = syllabusesData[1].UtbildningsinstansUID;
238
220
  const examinationModules = yield (0, examinationModulesUtil_1.getExaminationModules)(UtbildningsinstansUID, language, ladokClient);
239
221
  if (!examinationModules) {
240
222
  throw new Error(`No examination modules were found for UtbildningsinstansUID ${UtbildningsinstansUID}`);
241
223
  }
242
224
  const formattedExaminationModules = (0, examinationModulesUtil_1.formatExaminationTitles)(examinationModules, language);
243
- const mappedSyllabuses = syllabuses.map((syllabus) => (0, mapCourseSyllabus_1.mapCourseSyllabus)(syllabus, gradingScalesCodes, formattedExaminationModules, language));
225
+ const mappedSyllabuses = syllabusesData.map((syllabus) => (0, mapCourseSyllabus_1.mapCourseSyllabus)(syllabus, gradingScalesCodes, formattedExaminationModules, language));
244
226
  return mappedSyllabuses;
245
227
  }
246
228
  catch (error) {
@@ -249,21 +231,14 @@ const createApiClient = (config) => {
249
231
  }),
250
232
  getAllValidCourseSyllabuses: (courseCode, language) => __awaiter(void 0, void 0, void 0, function* () {
251
233
  try {
252
- const result = yield ladokClient.sokPlanSlim({
234
+ const result = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokPlan, {
253
235
  kodEllerBenamning: courseCode,
254
236
  striktKod: 'true',
255
237
  tillstand: 'BESLUTAD',
256
- attributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS,
257
- instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS,
258
- antalTraffar: '100',
238
+ antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR,
259
239
  });
260
- if (result.type !== 'success') {
261
- throw new Error(`API call failed: ${result.responseInfo.apiError || 'Unknown error'}`);
262
- }
263
- if (typeof result.data !== 'object') {
264
- throw new Error('result.data is not an object.');
265
- }
266
- const data = Object.values(result.data);
240
+ const allEntities = (0, responseUtils_1.throwIfContinuationError)(result);
241
+ const data = Object.values(allEntities);
267
242
  let syllabuses;
268
243
  if (!data[0].instans)
269
244
  syllabuses = data.slice(1); // The first element is metadata, skip it.
@@ -1 +1 @@
1
- {"version":3,"file":"createApiClient.js","sourceRoot":"","sources":["../src/createApiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createApiClient.js","sourceRoot":"","sources":["../src/createApiClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { AcademicSemester, SemesterNumber } from '../../utils';
2
+ export type KTHPeriod = 0 | 1 | 2 | 3 | 4 | 5;
3
+ export type KTHPeriodLabel = `P${KTHPeriod}`;
4
+ export type KTHPeriodSemester = {
5
+ semester: AcademicSemester;
6
+ period: KTHPeriod;
7
+ };
8
+ export type KTHPeriodDefinition = {
9
+ fromDate: Date;
10
+ toDate: Date;
11
+ academicSemester: AcademicSemester;
12
+ kthPeriod: KTHPeriod;
13
+ };
14
+ export declare const formatKTHPeriod: (kthPeriod: KTHPeriod) => KTHPeriodLabel;
15
+ export declare const parseKTHPeriod: (kthPeriod: string) => KTHPeriod | undefined;
16
+ export declare const isKTHPeriodLabel: (s: string) => s is KTHPeriodLabel;
17
+ export declare const matchKthPeriodToSemesterNumber: (period: KTHPeriod) => SemesterNumber | undefined;
18
+ export declare const compareKTHPeriod: (a: KTHPeriod, b: KTHPeriod) => number;
19
+ export declare const compareKTHPeriodSemester: (a: KTHPeriodSemester, b: KTHPeriodSemester) => number;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compareKTHPeriodSemester = exports.compareKTHPeriod = exports.matchKthPeriodToSemesterNumber = exports.isKTHPeriodLabel = exports.parseKTHPeriod = exports.formatKTHPeriod = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const formatKTHPeriod = (kthPeriod) => {
6
+ return `P${kthPeriod}`;
7
+ };
8
+ exports.formatKTHPeriod = formatKTHPeriod;
9
+ const regex = /^P([0-5])$/;
10
+ const parseKTHPeriod = (kthPeriod) => {
11
+ const match = regex.exec(kthPeriod);
12
+ if (!match) {
13
+ return undefined;
14
+ }
15
+ return Number(match[1]);
16
+ };
17
+ exports.parseKTHPeriod = parseKTHPeriod;
18
+ const isKTHPeriodLabel = (s) => regex.test(s);
19
+ exports.isKTHPeriodLabel = isKTHPeriodLabel;
20
+ const matchKthPeriodToSemesterNumber = (period) => {
21
+ switch (period) {
22
+ case 0:
23
+ case 1:
24
+ case 2:
25
+ return utils_1.SemesterNumber.Autumn;
26
+ case 3:
27
+ case 4:
28
+ case 5:
29
+ return utils_1.SemesterNumber.Spring;
30
+ }
31
+ };
32
+ exports.matchKthPeriodToSemesterNumber = matchKthPeriodToSemesterNumber;
33
+ const compareKTHPeriod = (a, b) => {
34
+ return getSortOrder(a) - getSortOrder(b);
35
+ };
36
+ exports.compareKTHPeriod = compareKTHPeriod;
37
+ const getSortOrder = (kthPeriod) => {
38
+ switch (kthPeriod) {
39
+ case 3:
40
+ return 1;
41
+ case 4:
42
+ return 2;
43
+ case 5:
44
+ return 3;
45
+ case 0:
46
+ return 4;
47
+ case 1:
48
+ return 5;
49
+ case 2:
50
+ return 6;
51
+ }
52
+ };
53
+ const compareKTHPeriodSemester = (a, b) => {
54
+ const semesterComparison = utils_1.AcademicSemester.compare(a.semester, b.semester);
55
+ if (semesterComparison !== 0)
56
+ return semesterComparison;
57
+ return (0, exports.compareKTHPeriod)(a.period, b.period);
58
+ };
59
+ exports.compareKTHPeriodSemester = compareKTHPeriodSemester;
60
+ //# sourceMappingURL=KTHPeriod.js.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ import { Tillfallesperiod } from '../../mapCourseRound';
2
+ import { KTHPeriodDefinition, KTHPeriodSemester } from './KTHPeriod';
3
+ /**
4
+ * This function attempts to match the Forsta and SistaUndervisningsdatum of each tillfallesperiod to a KTHPeriod.
5
+ * It returns an array of KTHPeriod
6
+ * @param tillfallesperioder array of Tillfallesperioder containing ForstaUndervisningsdatum and SistaUndervisningsdatum
7
+ * @param kthPeriods KTHPeriodDefinitions
8
+ * @returns
9
+ */
10
+ export declare const calculateKTHPeriodSemesterFromTillfallesperiod: (tillfallesperioder: Pick<Tillfallesperiod, "ForstaUndervisningsdatum" | "SistaUndervisningsdatum">[] | undefined, kthPeriods: KTHPeriodDefinition[] | undefined) => KTHPeriodSemester[] | undefined;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateKTHPeriodSemesterFromTillfallesperiod = void 0;
4
+ const typeChecking_1 = require("../../utils/typeChecking");
5
+ const KTHPeriod_1 = require("./KTHPeriod");
6
+ const matchDateToKTHPeriodYear_1 = require("./matchDateToKTHPeriodYear");
7
+ /**
8
+ * This function attempts to match the Forsta and SistaUndervisningsdatum of each tillfallesperiod to a KTHPeriod.
9
+ * It returns an array of KTHPeriod
10
+ * @param tillfallesperioder array of Tillfallesperioder containing ForstaUndervisningsdatum and SistaUndervisningsdatum
11
+ * @param kthPeriods KTHPeriodDefinitions
12
+ * @returns
13
+ */
14
+ const calculateKTHPeriodSemesterFromTillfallesperiod = (tillfallesperioder, kthPeriods) => {
15
+ if (!(0, typeChecking_1.isArrayWithValues)(tillfallesperioder))
16
+ return undefined;
17
+ if (!(0, typeChecking_1.isArrayWithValues)(kthPeriods))
18
+ return undefined;
19
+ const result = tillfallesperioder.flatMap(({ ForstaUndervisningsdatum, SistaUndervisningsdatum }) => {
20
+ const periods = [
21
+ (0, matchDateToKTHPeriodYear_1.matchDateToKTHPeriodYear)(new Date(ForstaUndervisningsdatum), kthPeriods),
22
+ (0, matchDateToKTHPeriodYear_1.matchDateToKTHPeriodYear)(new Date(SistaUndervisningsdatum), kthPeriods),
23
+ ];
24
+ return filterDefinedAndDistinctValues(periods);
25
+ });
26
+ return result.sort(KTHPeriod_1.compareKTHPeriodSemester);
27
+ };
28
+ 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
+ //# sourceMappingURL=calculateKTHPeriodSemesterFromTillfallesperiod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateKTHPeriodSemesterFromTillfallesperiod.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.ts"],"names":[],"mappings":";;;AACA,2DAAuE;AACvE,2CAAyG;AACzG,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,8BAA8B,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAA;AAC9C,CAAC,CAAA;AAjBY,QAAA,8CAA8C,kDAiB1D;AAED,MAAM,8BAA8B,GAAG,CAAC,UAA6C,EAAuB,EAAE;IAC5G,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,wBAAS,CAAC,CAAA;IAEnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAa,CAAA;IAExC,mCAAmC;IACnC,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACnD,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAA,CAAC,iGAAiG;QAElJ,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,gCAAgC;QAC/D,OAAO,IAAI,CAAA,CAAC,6BAA6B;IAC3C,CAAC,CAAC,CAAA;IAEF,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { PeriodItem } from '@kth/ladok-mellanlager-client';
2
+ import { KTHPeriodDefinition } from './KTHPeriod';
3
+ /**
4
+ * Takes an array of LadokPeriod definitions (periodItems), splits each LadokPeriod into three KTHPeriodDefinitions and returns
5
+ * the resulting array.
6
+ * Note that the calculation for the break points between the KTHPeriods is hardcoded and based on historical values.
7
+ *
8
+ *
9
+ * @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
10
+ * @returns An array of KTHPeriodDefinitions based on the given ladokPeriodDefinitions
11
+ */
12
+ export declare const convertToKTHPeriods: (ladokPeriodDefinitions: Pick<PeriodItem, "FromDatum" | "TomDatum" | "Kod">[]) => KTHPeriodDefinition[];
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertToKTHPeriods = void 0;
4
+ const utils_1 = require("../../utils");
5
+ /**
6
+ * Takes an array of LadokPeriod definitions (periodItems), splits each LadokPeriod into three KTHPeriodDefinitions and returns
7
+ * the resulting array.
8
+ * Note that the calculation for the break points between the KTHPeriods is hardcoded and based on historical values.
9
+ *
10
+ *
11
+ * @param ladokPeriodDefinitions Response data from call to ladok mellanlager's period endpoint
12
+ * @returns An array of KTHPeriodDefinitions based on the given ladokPeriodDefinitions
13
+ */
14
+ const convertToKTHPeriods = (ladokPeriodDefinitions) => {
15
+ const validDefinitions = ladokPeriodDefinitions.filter(({ Kod }) => (0, utils_1.isValidLadokPeriod)(Kod));
16
+ return validDefinitions.flatMap(splitIntoPeriods);
17
+ };
18
+ exports.convertToKTHPeriods = convertToKTHPeriods;
19
+ // Looking at historical data, P1 and P3 have had the following lengths in days.
20
+ const LENGTH_P1 = 62;
21
+ const LENGTH_P3 = 61;
22
+ const getFirstOfJuly = (year) => new Date(`${year}-07-01`);
23
+ const getLastOfJune = (year) => new Date(`${year}-06-30`);
24
+ const splitIntoPeriods = ({ FromDatum, TomDatum, Kod: ladokPeriodString, }) => {
25
+ const fromDateDate = new Date(FromDatum);
26
+ const toDateDate = new Date(TomDatum);
27
+ const academicSemester = utils_1.AcademicSemester.fromLadokPeriodString(ladokPeriodString); // ladokPeriodString will always be defined here, if not, we have bigger problems
28
+ if (academicSemester.semesterNumber === utils_1.SemesterNumber.Autumn) {
29
+ return splitLadokAutumnPeriodIntoKTHPeriodDefinitions(fromDateDate, academicSemester, toDateDate);
30
+ }
31
+ return splitLadokSpringPeriodIntoKTHPeriodDefinitions(fromDateDate, toDateDate, academicSemester);
32
+ };
33
+ const splitLadokAutumnPeriodIntoKTHPeriodDefinitions = (fromDateDate, academicSemester, toDateDate) => {
34
+ const startOfP0 = getFirstOfJuly(fromDateDate.getFullYear()); // Start of P0 is always July 1st
35
+ const endofP0 = getPreviousDay(fromDateDate); // End of P0 is always the day before the first day of HT
36
+ const endOfP1 = addDaysCustom(fromDateDate, LENGTH_P1); // End of P1 is always $LENGTH_P1 days after the first day of HT
37
+ const startOfP2 = addDaysCustom(endOfP1, 1); // Start of P2 is always the day after end of P1
38
+ return [
39
+ { fromDate: startOfP0, toDate: endofP0, academicSemester, kthPeriod: 0 },
40
+ { fromDate: fromDateDate, toDate: endOfP1, academicSemester, kthPeriod: 1 },
41
+ { fromDate: startOfP2, toDate: toDateDate, academicSemester, kthPeriod: 2 },
42
+ ];
43
+ };
44
+ const splitLadokSpringPeriodIntoKTHPeriodDefinitions = (fromDateDate, toDateDate, academicSemester) => {
45
+ const endOfP3 = addDaysCustom(fromDateDate, LENGTH_P3); // End of P3
46
+ const startOfP4 = addDaysCustom(endOfP3, 1);
47
+ const startOfP5 = addDaysCustom(toDateDate, 1);
48
+ const endOfP5 = getLastOfJune(toDateDate.getFullYear());
49
+ return [
50
+ { fromDate: fromDateDate, toDate: endOfP3, academicSemester, kthPeriod: 3 },
51
+ { fromDate: startOfP4, toDate: toDateDate, academicSemester, kthPeriod: 4 },
52
+ { fromDate: startOfP5, toDate: endOfP5, academicSemester, kthPeriod: 5 },
53
+ ];
54
+ };
55
+ /**
56
+ * Returns the previous day, can handle DST
57
+ * @param date The date in relation to which to calculate the previous day
58
+ * @returns
59
+ */
60
+ const getPreviousDay = (date) => {
61
+ const result = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
62
+ result.setUTCDate(result.getUTCDate() - 1);
63
+ return result;
64
+ };
65
+ /**
66
+ * Returns a Date {days} days after {date}
67
+ * @param date The day to which do add days
68
+ * @param days
69
+ * @returns
70
+ */
71
+ const addDaysCustom = (date, days) => {
72
+ const result = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
73
+ result.setUTCDate(result.getUTCDate() + days);
74
+ return result;
75
+ };
76
+ //# sourceMappingURL=convertToKTHPeriods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertToKTHPeriods.js","sourceRoot":"","sources":["../../../src/kth/KTHPeriod/convertToKTHPeriods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Tillfallesperiod, Lasperiodsfordelning } from '../../mapCourseRound';
2
+ import { KTHPeriodSemester } from './KTHPeriod';
3
+ type RelevantTillfallesperiod = Pick<Tillfallesperiod, 'ForstaUndervisningsdatum'> & {
4
+ Lasperiodsfordelning: Pick<Lasperiodsfordelning, 'Lasperiodskod'>[];
5
+ };
6
+ export declare const extractKTHPeriodSemesterFromLasperiodsfordelning: (tillfallesperioder: RelevantTillfallesperiod[] | undefined) => KTHPeriodSemester[] | undefined;
7
+ export {};