@kth/om-kursen-ladok-client 1.0.6 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/createApiClient.js +114 -6
- package/dist/createApiClient.js.map +1 -1
- package/dist/mapCourse.d.ts +5 -2
- package/dist/mapCourse.js +2 -2
- package/dist/mapCourse.js.map +1 -1
- package/dist/mapCourseInstans.d.ts +8 -0
- package/dist/mapCourseInstans.js +21 -0
- package/dist/mapCourseInstans.js.map +1 -0
- package/dist/mapCourseRound.d.ts +25 -3
- package/dist/mapCourseRound.js +20 -17
- package/dist/mapCourseRound.js.map +1 -1
- package/dist/mapCourseSyllabus.d.ts +76 -0
- package/dist/mapCourseSyllabus.js +67 -0
- package/dist/mapCourseSyllabus.js.map +1 -0
- package/dist/mapExaminationModule.d.ts +5 -2
- package/dist/mapExaminationModule.js +3 -3
- package/dist/mapExaminationModule.js.map +1 -1
- package/dist/mapGradingScales.d.ts +24 -0
- package/dist/mapGradingScales.js +31 -0
- package/dist/mapGradingScales.js.map +1 -0
- package/dist/mapProgramTillfalle.d.ts +22 -0
- package/dist/mapProgramTillfalle.js +39 -0
- package/dist/mapProgramTillfalle.js.map +1 -0
- package/dist/mapStructureCourses.d.ts +24 -0
- package/dist/mapStructureCourses.js +27 -0
- package/dist/mapStructureCourses.js.map +1 -0
- package/dist/types/OmKursenLadokApiClient.d.ts +10 -1
- package/dist/utils/courseSyllabusUtil.d.ts +4 -0
- package/dist/utils/courseSyllabusUtil.js +66 -0
- package/dist/utils/courseSyllabusUtil.js.map +1 -0
- package/dist/utils/creditsUtil.d.ts +1 -0
- package/dist/utils/creditsUtil.js +3 -2
- package/dist/utils/creditsUtil.js.map +1 -1
- package/dist/utils/dateUtil.d.ts +1 -0
- package/dist/utils/dateUtil.js +4 -1
- package/dist/utils/dateUtil.js.map +1 -1
- package/dist/utils/examinationModulesUtil.d.ts +12 -1
- package/dist/utils/examinationModulesUtil.js +18 -2
- package/dist/utils/examinationModulesUtil.js.map +1 -1
- package/dist/utils/gradingScalesUtils.d.ts +8 -0
- package/dist/utils/gradingScalesUtils.js +52 -0
- package/dist/utils/gradingScalesUtils.js.map +1 -0
- package/dist/utils/languageUtil.d.ts +8 -1
- package/dist/utils/languageUtil.js +10 -2
- package/dist/utils/languageUtil.js.map +1 -1
- package/dist/utils/periodUtil.d.ts +1 -0
- package/dist/utils/periodUtil.js +7 -1
- package/dist/utils/periodUtil.js.map +1 -1
- package/dist/utils/programStrukturUtil.d.ts +77 -0
- package/dist/utils/programStrukturUtil.js +191 -0
- package/dist/utils/programStrukturUtil.js.map +1 -0
- package/dist/utils/studyYearUtil.d.ts +25 -0
- package/dist/utils/studyYearUtil.js +48 -0
- package/dist/utils/studyYearUtil.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BetygsskalaItem } from "@kth/ladok-mellanlager-client/dist/types/endpoints/betygsskala";
|
|
2
|
+
export type GradingScales = Record<string, GradingScale>;
|
|
3
|
+
export type GradingScale = {
|
|
4
|
+
kod: string;
|
|
5
|
+
benamning: {
|
|
6
|
+
en: string;
|
|
7
|
+
sv: string;
|
|
8
|
+
};
|
|
9
|
+
beskrivning: Record<string, any>;
|
|
10
|
+
betygsgrader: GradingGrade[];
|
|
11
|
+
};
|
|
12
|
+
export type GradingGrade = {
|
|
13
|
+
id: string;
|
|
14
|
+
benamning: {
|
|
15
|
+
en: string;
|
|
16
|
+
sv: string;
|
|
17
|
+
};
|
|
18
|
+
kod: string;
|
|
19
|
+
ordningsnummer: number;
|
|
20
|
+
dolt: boolean;
|
|
21
|
+
};
|
|
22
|
+
export type GradingScalesCodes = Record<string, string>;
|
|
23
|
+
export declare const mapGradingScales: (items: BetygsskalaItem[]) => GradingScales;
|
|
24
|
+
export declare const mapGradingScalesCodes: (items: BetygsskalaItem[]) => GradingScalesCodes;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapGradingScalesCodes = exports.mapGradingScales = void 0;
|
|
4
|
+
const mapGrades = (betygsgrader = []) => betygsgrader
|
|
5
|
+
.map((grad) => ({
|
|
6
|
+
id: grad.ID,
|
|
7
|
+
benamning: { en: grad.Benamning.en, sv: grad.Benamning.sv },
|
|
8
|
+
kod: grad.Kod,
|
|
9
|
+
ordningsnummer: grad.Ordningsnummer,
|
|
10
|
+
dolt: grad.Dolt,
|
|
11
|
+
}))
|
|
12
|
+
.sort((a, b) => a.ordningsnummer - b.ordningsnummer);
|
|
13
|
+
const mapGradingScales = (items) => items.reduce((gradingScales, item) => {
|
|
14
|
+
gradingScales[item.Kod] = {
|
|
15
|
+
kod: item.Kod,
|
|
16
|
+
benamning: { en: item.Benamning.en, sv: item.Benamning.sv },
|
|
17
|
+
beskrivning: item.Beskrivning,
|
|
18
|
+
betygsgrader: mapGrades(item.Betygsgrader),
|
|
19
|
+
};
|
|
20
|
+
return gradingScales;
|
|
21
|
+
}, {});
|
|
22
|
+
exports.mapGradingScales = mapGradingScales;
|
|
23
|
+
const mapGradingScalesCodes = (items) => items.reduce((gradingScalesCodes, item) => {
|
|
24
|
+
const betygsgraderKoder = mapGrades(item.Betygsgrader)
|
|
25
|
+
.map((grad) => grad.kod)
|
|
26
|
+
.join(", ");
|
|
27
|
+
gradingScalesCodes[item.Kod] = betygsgraderKoder;
|
|
28
|
+
return gradingScalesCodes;
|
|
29
|
+
}, {});
|
|
30
|
+
exports.mapGradingScalesCodes = mapGradingScalesCodes;
|
|
31
|
+
//# sourceMappingURL=mapGradingScales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapGradingScales.js","sourceRoot":"","sources":["../src/mapGradingScales.ts"],"names":[],"mappings":";;;AA2BA,MAAM,SAAS,GAAG,CAAC,eAAsB,EAAE,EAAE,EAAE,CAC7C,YAAY;KACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;IAC3D,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,cAAc,EAAE,IAAI,CAAC,cAAc;IACnC,IAAI,EAAE,IAAI,CAAC,IAAI;CAChB,CAAC,CAAC;KACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,KAAwB,EAAiB,EAAE,CAC1E,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;IACnC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QACxB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;QAC3D,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;KAC3C,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC,EAAE,EAAmB,CAAC,CAAC;AATb,QAAA,gBAAgB,oBASH;AAEnB,MAAM,qBAAqB,GAAG,CACnC,KAAwB,EACJ,EAAE,CACtB,KAAK,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,IAAI,EAAE,EAAE;IACxC,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;SACnD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;SACvB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC;IACjD,OAAO,kBAAkB,CAAC;AAC5B,CAAC,EAAE,EAAwB,CAAC,CAAC;AATlB,QAAA,qBAAqB,yBASH"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LadokStatus, Lokalmarkning } from '@kth/ladok-attributvarde-utils';
|
|
2
|
+
import { SokProgramTillfalleItem } from '@kth/ladok-mellanlager-client';
|
|
3
|
+
import { Language, TranslatedOrganisation, TranslatedTilltradesniva, TranslatedUtbildningstyp } from './utils';
|
|
4
|
+
export type ProgramTillfalle = {
|
|
5
|
+
uid: string;
|
|
6
|
+
status?: LadokStatus;
|
|
7
|
+
installt: boolean;
|
|
8
|
+
benamning: string;
|
|
9
|
+
lengthInStudyYears: number;
|
|
10
|
+
organisation?: TranslatedOrganisation;
|
|
11
|
+
creditUnitAbbr?: string;
|
|
12
|
+
omfattning: {
|
|
13
|
+
number: string;
|
|
14
|
+
formattedWithUnit: string;
|
|
15
|
+
};
|
|
16
|
+
utbildningstyp?: TranslatedUtbildningstyp;
|
|
17
|
+
tilltradesniva?: TranslatedTilltradesniva;
|
|
18
|
+
kod: string;
|
|
19
|
+
lokalmarkning?: Lokalmarkning[];
|
|
20
|
+
utbildningstillfalleskod?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const mapProgramTillfalle: (item: SokProgramTillfalleItem, language: Language) => ProgramTillfalle;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapProgramTillfalle = void 0;
|
|
4
|
+
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
const creditsUtil_1 = require("./utils/creditsUtil");
|
|
7
|
+
const mapProgramTillfalle = (item, language) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const attributeValues = item.Attributvarden;
|
|
10
|
+
const benamning = {
|
|
11
|
+
sv: item.index['utbildning.attribut.svensk.benamning'],
|
|
12
|
+
en: item.index['utbildning.attribut.engelsk.benamning'],
|
|
13
|
+
};
|
|
14
|
+
const omfattning = item.index['utbildning.attribut.omfattning'];
|
|
15
|
+
const organisation = (0, ladok_attributvarde_utils_1.extractOrganisation)(item.Attributvarden);
|
|
16
|
+
const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(item.Attributvarden);
|
|
17
|
+
const tilltradesniva = (0, ladok_attributvarde_utils_1.extractTilltradesniva)(item.instans.Attributvarden);
|
|
18
|
+
const lokalmarkning = (0, ladok_attributvarde_utils_1.extractLokalmarkning)(item.Attributvarden);
|
|
19
|
+
return {
|
|
20
|
+
uid: item.tillfalle_uid,
|
|
21
|
+
status: (0, ladok_attributvarde_utils_1.extractLadokStatus)(item.Attributvarden),
|
|
22
|
+
installt: (_a = (0, ladok_attributvarde_utils_1.extractBoolean)(item.Attributvarden, 'installt')) !== null && _a !== void 0 ? _a : false,
|
|
23
|
+
utbildningstillfalleskod: (0, ladok_attributvarde_utils_1.extractString)(attributeValues, 'utbildning.attribut.utbildningstillfalleskod'),
|
|
24
|
+
benamning: benamning[language],
|
|
25
|
+
omfattning: {
|
|
26
|
+
number: omfattning,
|
|
27
|
+
formattedWithUnit: (0, creditsUtil_1.formatCreditsWithUnitLabel)(omfattning, utbildningstyp, language),
|
|
28
|
+
},
|
|
29
|
+
creditUnitAbbr: utbildningstyp && (0, creditsUtil_1.getCreditsUnit)(utbildningstyp, language),
|
|
30
|
+
lengthInStudyYears: Math.ceil(Number(omfattning) / 60),
|
|
31
|
+
organisation: organisation && (0, utils_1.translateOrganisation)(organisation, language),
|
|
32
|
+
utbildningstyp: utbildningstyp && (0, utils_1.translateUtbildningstyp)(utbildningstyp, language),
|
|
33
|
+
tilltradesniva: tilltradesniva && (0, utils_1.translatedTilltradesniva)(tilltradesniva, language),
|
|
34
|
+
kod: item.index['utbildning.attribut.kod'],
|
|
35
|
+
lokalmarkning: lokalmarkning,
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
exports.mapProgramTillfalle = mapProgramTillfalle;
|
|
39
|
+
//# sourceMappingURL=mapProgramTillfalle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapProgramTillfalle.js","sourceRoot":"","sources":["../src/mapProgramTillfalle.ts"],"names":[],"mappings":";;;AAAA,8EAUuC;AAEvC,mCAQgB;AAChB,qDAAgF;AAuBzE,MAAM,mBAAmB,GAAG,CAAC,IAA6B,EAAE,QAAkB,EAAoB,EAAE;;IACzG,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAA;IAE3C,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC;QACtD,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC;KACxD,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,IAAA,+CAAmB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACjE,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACzE,MAAM,aAAa,GAAG,IAAA,gDAAoB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAE/D,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,aAAa;QACvB,MAAM,EAAE,IAAA,8CAAkB,EAAC,IAAI,CAAC,cAAc,CAAC;QAC/C,QAAQ,EAAE,MAAA,IAAA,0CAAc,EAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,mCAAI,KAAK;QAElE,wBAAwB,EAAE,IAAA,yCAAa,EAAC,eAAe,EAAE,8CAA8C,CAAC;QACxG,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;QAE9B,UAAU,EAAE;YACV,MAAM,EAAE,UAAU;YAClB,iBAAiB,EAAE,IAAA,wCAA0B,EAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC;SACpF;QACD,cAAc,EAAE,cAAc,IAAI,IAAA,4BAAc,EAAC,cAAc,EAAE,QAAQ,CAAC;QAC1E,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACtD,YAAY,EAAE,YAAY,IAAI,IAAA,6BAAqB,EAAC,YAAY,EAAE,QAAQ,CAAC;QAE3E,cAAc,EAAE,cAAc,IAAI,IAAA,+BAAuB,EAAC,cAAc,EAAE,QAAQ,CAAC;QAEnF,cAAc,EAAE,cAAc,IAAI,IAAA,gCAAwB,EAAC,cAAc,EAAE,QAAQ,CAAC;QACpF,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC;QAC1C,aAAa,EAAE,aAAa;KAC7B,CAAA;AACH,CAAC,CAAA;AApCY,QAAA,mBAAmB,uBAoC/B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Utbildningstillfalle } from "@kth/ladok-mellanlager-client";
|
|
2
|
+
import { Language, TranslatedGrunddata } from "./utils";
|
|
3
|
+
export type StructureCourse = {
|
|
4
|
+
utbildningsinstansUid: string;
|
|
5
|
+
uid: string;
|
|
6
|
+
tillfalleskod: string;
|
|
7
|
+
omfattning: {
|
|
8
|
+
number: number;
|
|
9
|
+
formattedWithUnit: string;
|
|
10
|
+
};
|
|
11
|
+
startperiod?: TranslatedGrunddata;
|
|
12
|
+
Tillfallesperioder: {
|
|
13
|
+
ForstaRegistreringsdatum: string;
|
|
14
|
+
ForstaUndervisningsdatum: string;
|
|
15
|
+
Lasperiodsfordelning?: {
|
|
16
|
+
Lasperiodskod: string;
|
|
17
|
+
Omfattningsvarde: number;
|
|
18
|
+
}[];
|
|
19
|
+
Omfattningsvarde: number;
|
|
20
|
+
SistaRegistreringsdatum: string;
|
|
21
|
+
SistaUndervisningsdatum: string;
|
|
22
|
+
}[];
|
|
23
|
+
};
|
|
24
|
+
export declare const mapStructureCourses: (entity: Utbildningstillfalle, language: Language) => StructureCourse;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapStructureCourses = void 0;
|
|
4
|
+
const creditsUtil_1 = require("./utils/creditsUtil");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
7
|
+
const mapStructureCourses = (entity, language) => {
|
|
8
|
+
const { Attributvarden, Uid } = entity;
|
|
9
|
+
const utbildningsinstansUid = (0, ladok_attributvarde_utils_1.extractString)(Attributvarden, "utbildningsinstans.uid");
|
|
10
|
+
const tillfalleskod = (0, ladok_attributvarde_utils_1.extractString)(Attributvarden, "utbildning.attribut.utbildningstillfalleskod");
|
|
11
|
+
const omfattningNumber = entity.Tillfallesperioder.reduce((sum, period) => sum + period.Omfattningsvarde, 0);
|
|
12
|
+
const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(Attributvarden);
|
|
13
|
+
const startperiod = (0, ladok_attributvarde_utils_1.extractGrunddata)(Attributvarden, "utbildning.attribut.startperiod");
|
|
14
|
+
return {
|
|
15
|
+
utbildningsinstansUid: utbildningsinstansUid,
|
|
16
|
+
uid: Uid,
|
|
17
|
+
tillfalleskod: tillfalleskod,
|
|
18
|
+
omfattning: {
|
|
19
|
+
number: omfattningNumber,
|
|
20
|
+
formattedWithUnit: (0, creditsUtil_1.formatCreditsWithUnitLabel)(omfattningNumber.toString(), utbildningstyp, language),
|
|
21
|
+
},
|
|
22
|
+
startperiod: startperiod && (0, utils_1.translateGrunddata)(startperiod, language),
|
|
23
|
+
Tillfallesperioder: entity.Tillfallesperioder,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.mapStructureCourses = mapStructureCourses;
|
|
27
|
+
//# sourceMappingURL=mapStructureCourses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapStructureCourses.js","sourceRoot":"","sources":["../src/mapStructureCourses.ts"],"names":[],"mappings":";;;AAIA,qDAAiE;AACjE,mCAA4E;AAC5E,8EAIwC;AAwBjC,MAAM,mBAAmB,GAAG,CACjC,MAA4B,EAC5B,QAAkB,EACD,EAAE;IACnB,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAEvC,MAAM,qBAAqB,GAAG,IAAA,yCAAa,EACzC,cAAc,EACd,wBAAwB,CACzB,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,yCAAa,EACjC,cAAc,EACd,8CAA8C,CAC/C,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAC9C,CAAC,CACF,CAAC;IAEF,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,cAAc,CAAC,CAAC;IAE7D,MAAM,WAAW,GAAG,IAAA,4CAAgB,EAClC,cAAc,EACd,iCAAiC,CAClC,CAAC;IAEF,OAAO;QACL,qBAAqB,EAAE,qBAAsB;QAC7C,GAAG,EAAE,GAAG;QACR,aAAa,EAAE,aAAc;QAC7B,UAAU,EAAE;YACV,MAAM,EAAE,gBAAgB;YACxB,iBAAiB,EAAE,IAAA,wCAA0B,EAC3C,gBAAgB,CAAC,QAAQ,EAAE,EAC3B,cAAc,EACd,QAAQ,CACT;SACF;QACD,WAAW,EAAE,WAAW,IAAI,IAAA,0BAAkB,EAAC,WAAW,EAAE,QAAQ,CAAC;QACrE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;KAC9C,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,mBAAmB,uBA2C9B"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { ResponseInfo } from "@kth/ladok-mellanlager-client";
|
|
1
|
+
import { MellanlagringResponse, ResponseInfo } from "@kth/ladok-mellanlager-client";
|
|
2
2
|
import { GroupedCourseSearchResult } from "../groupSearchResults";
|
|
3
3
|
import { Course } from "../mapCourse";
|
|
4
4
|
import { CourseRound } from "../mapCourseRound";
|
|
5
5
|
import { Language } from "../utils";
|
|
6
6
|
import { Utbildningsplan } from "../mapUtbildningsplan";
|
|
7
|
+
import { KursPlan } from "../mapCourseSyllabus";
|
|
8
|
+
import { Period } from "@kth/ladok-mellanlager-client/dist/types/endpoints/period";
|
|
7
9
|
export type OmKursenLadokApiClient = {
|
|
8
10
|
getLatestCourseVersion: (courseCode: string, language: Language) => Promise<(Course & ResponseInfo) | ResponseInfo>;
|
|
9
11
|
searchCourses: (searchParams: {
|
|
@@ -23,4 +25,11 @@ export type OmKursenLadokApiClient = {
|
|
|
23
25
|
getUtbildningsPlan: (uid: string, language: Language) => Promise<Utbildningsplan | undefined>;
|
|
24
26
|
getExaminationModulesByUtbildningstillfalleUid: (utbildningstillfalleUid: string, language: Language) => Promise<any>;
|
|
25
27
|
getExaminationModulesByUtbildningsinstansUid: (utbildningsinstansUid: string, language: Language) => Promise<any>;
|
|
28
|
+
getActiveProgramTillfalle: (programCode: string, term: string, language: Language) => Promise<any>;
|
|
29
|
+
getUtbildningstilfalleStructure: (utbildningstillfalleUID: string, language: Language) => Promise<any>;
|
|
30
|
+
getCourseSyllabus: (courseCode: string, semester: string, language: Language) => Promise<KursPlan> | undefined;
|
|
31
|
+
getCourseSyllabuses: (courseCode: string, language: Language) => Promise<KursPlan[]> | undefined;
|
|
32
|
+
getAllGradingScales: () => Promise<any>;
|
|
33
|
+
getAllGradingScalesCodes: () => Promise<any>;
|
|
34
|
+
getPeriods: () => Promise<MellanlagringResponse<Period>>;
|
|
26
35
|
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SokPlanItem } from "@kth/ladok-mellanlager-client";
|
|
2
|
+
import { PeriodItem } from "@kth/ladok-mellanlager-client/dist/types/endpoints/period";
|
|
3
|
+
export declare const getSemester: (dateStr: string) => string;
|
|
4
|
+
export declare function getSyllabusForSemester(semester: string, syllabuses: SokPlanItem[], periods: PeriodItem[]): SokPlanItem | null;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSemester = void 0;
|
|
4
|
+
exports.getSyllabusForSemester = getSyllabusForSemester;
|
|
5
|
+
const periodUtil_1 = require("./periodUtil");
|
|
6
|
+
const getSemester = (dateStr) => {
|
|
7
|
+
const [yearStr, monthStr] = dateStr.split("-");
|
|
8
|
+
const year = parseInt(yearStr, 10);
|
|
9
|
+
const month = parseInt(monthStr, 10);
|
|
10
|
+
if (month >= 1 && month <= 7) {
|
|
11
|
+
return `VT${year}`;
|
|
12
|
+
}
|
|
13
|
+
else if (month >= 8 && month <= 12) {
|
|
14
|
+
return `HT${year}`;
|
|
15
|
+
}
|
|
16
|
+
throw new Error("Invalid date format or value");
|
|
17
|
+
};
|
|
18
|
+
exports.getSemester = getSemester;
|
|
19
|
+
function sortSyllabuses(syllabuses) {
|
|
20
|
+
return syllabuses.sort((a, b) => {
|
|
21
|
+
// Step 1: Sort by most recent GiltigFran date (descending)
|
|
22
|
+
const dateA = new Date(a.GiltigFran).getTime();
|
|
23
|
+
const dateB = new Date(b.GiltigFran).getTime();
|
|
24
|
+
if (dateA !== dateB) {
|
|
25
|
+
return dateB - dateA;
|
|
26
|
+
}
|
|
27
|
+
// Step 2: If same GiltigFran date, sort by latest course version (descending)
|
|
28
|
+
const versionA = parseInt(a.index.versionsnummer, 10);
|
|
29
|
+
const versionB = parseInt(b.index.versionsnummer, 10);
|
|
30
|
+
if (versionA !== versionB) {
|
|
31
|
+
return versionB - versionA;
|
|
32
|
+
}
|
|
33
|
+
// Step 3: If same course version date, sort by latest syllabus version (descending)
|
|
34
|
+
const syllabusEditionA = a.AktuellaAttributvarden.find((Attributvarde) => Attributvarde.Attributdefinition.Kod === "utbildning.lokalt.attribut.29.utgava").Varden[0];
|
|
35
|
+
const syllabusEditionB = b.AktuellaAttributvarden.find((Attributvarde) => Attributvarde.Attributdefinition.Kod === "utbildning.lokalt.attribut.29.utgava").Varden[0];
|
|
36
|
+
if (parseInt(syllabusEditionA) !== parseInt(syllabusEditionB)) {
|
|
37
|
+
return parseInt(syllabusEditionB) - parseInt(syllabusEditionA);
|
|
38
|
+
}
|
|
39
|
+
// Step 3: If same versionsnummer, sort by most recent date the syllabus was saved
|
|
40
|
+
const timestampA = new Date(a.BeslutsinformationForPlan.Beslutloggposter[0].SenastSparad).getTime();
|
|
41
|
+
const timestampB = new Date(b.BeslutsinformationForPlan.Beslutloggposter[0].SenastSparad).getTime();
|
|
42
|
+
return timestampB - timestampA;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function getSyllabusForSemester(semester, syllabuses, periods) {
|
|
46
|
+
const semesterOnLadokFormat = (0, periodUtil_1.transformDigitsInPeriod)(semester);
|
|
47
|
+
const match = semesterOnLadokFormat.match(/^(VT|HT)(\d{4})$/);
|
|
48
|
+
if (!match) {
|
|
49
|
+
throw new Error("Invalid semester format. Expected 'VTYYYY' or 'HTYYYY'.");
|
|
50
|
+
}
|
|
51
|
+
const exactPeriod = periods.find(period => period.Kod === semesterOnLadokFormat);
|
|
52
|
+
let semesterEnd;
|
|
53
|
+
if (exactPeriod) {
|
|
54
|
+
semesterEnd = new Date(exactPeriod === null || exactPeriod === void 0 ? void 0 : exactPeriod.Giltighetsperiod.Slutdatum);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw new Error(`Could not find find a corresponding period for semester ${semesterOnLadokFormat}`);
|
|
58
|
+
}
|
|
59
|
+
const validSyllabuses = syllabuses.filter((syllabus) => {
|
|
60
|
+
const validFrom = new Date(syllabus.GiltigFran);
|
|
61
|
+
return validFrom <= semesterEnd;
|
|
62
|
+
});
|
|
63
|
+
const sortedSyllabuses = sortSyllabuses(validSyllabuses);
|
|
64
|
+
return sortedSyllabuses.length > 0 ? sortedSyllabuses[0] : null;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=courseSyllabusUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"courseSyllabusUtil.js","sourceRoot":"","sources":["../../src/utils/courseSyllabusUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { Utbildningstyp } from "@kth/ladok-attributvarde-utils";
|
|
2
2
|
import { Language } from "./languageUtil";
|
|
3
|
+
export declare const getCreditsUnit: (utbildningstyp: Utbildningstyp, language: Language) => string;
|
|
3
4
|
export declare const formatCreditsWithUnitLabel: (omfattning: string, utbildningstyp: Utbildningstyp | undefined, language: Language) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatCreditsWithUnitLabel = void 0;
|
|
3
|
+
exports.formatCreditsWithUnitLabel = exports.getCreditsUnit = void 0;
|
|
4
4
|
const getCreditsUnit = (utbildningstyp, language) => {
|
|
5
5
|
switch (utbildningstyp.creditsUnit.code) {
|
|
6
6
|
case "HP":
|
|
@@ -11,10 +11,11 @@ const getCreditsUnit = (utbildningstyp, language) => {
|
|
|
11
11
|
return utbildningstyp.creditsUnit.code.toLocaleLowerCase();
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
+
exports.getCreditsUnit = getCreditsUnit;
|
|
14
15
|
const formatCredits = (omfattning, language) => language === "sv" ? omfattning.replace(".", ",") : omfattning;
|
|
15
16
|
const formatCreditsWithUnitLabel = (omfattning, utbildningstyp, language) => {
|
|
16
17
|
const credits = formatCredits(omfattning, language);
|
|
17
|
-
const unit = utbildningstyp ? getCreditsUnit(utbildningstyp, language) : "";
|
|
18
|
+
const unit = utbildningstyp ? (0, exports.getCreditsUnit)(utbildningstyp, language) : "";
|
|
18
19
|
return `${credits} ${unit}`;
|
|
19
20
|
};
|
|
20
21
|
exports.formatCreditsWithUnitLabel = formatCreditsWithUnitLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creditsUtil.js","sourceRoot":"","sources":["../../src/utils/creditsUtil.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"creditsUtil.js","sourceRoot":"","sources":["../../src/utils/creditsUtil.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,cAA8B,EAAE,QAAkB,EAAE,EAAE;IACnF,QAAQ,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,IAAI;YACP,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9C,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf;YACE,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AAEF,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,QAAkB,EAAE,EAAE,CAC/D,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAEzD,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EAClB,cAA0C,EAC1C,QAAkB,EAClB,EAAE;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;AAC9B,CAAC,CAAC;AARW,QAAA,0BAA0B,8BAQrC"}
|
package/dist/utils/dateUtil.d.ts
CHANGED
package/dist/utils/dateUtil.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getYearAndWeek = void 0;
|
|
3
|
+
exports.getFormattedCurrentDate = exports.getYearAndWeek = void 0;
|
|
4
|
+
const date_fns_1 = require("date-fns");
|
|
4
5
|
const getYearAndWeek = (dateString) => {
|
|
5
6
|
const date = new Date(dateString);
|
|
6
7
|
const year = date.getFullYear();
|
|
@@ -21,4 +22,6 @@ const getYearAndWeek = (dateString) => {
|
|
|
21
22
|
};
|
|
22
23
|
};
|
|
23
24
|
exports.getYearAndWeek = getYearAndWeek;
|
|
25
|
+
const getFormattedCurrentDate = () => (0, date_fns_1.format)(new Date(), 'yyyy-MM-dd');
|
|
26
|
+
exports.getFormattedCurrentDate = getFormattedCurrentDate;
|
|
24
27
|
//# sourceMappingURL=dateUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateUtil.js","sourceRoot":"","sources":["../../src/utils/dateUtil.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"dateUtil.js","sourceRoot":"","sources":["../../src/utils/dateUtil.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AAE1B,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAkC,EAAE;IACnF,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IACvC,MAAM,IAAI,GAAW,IAAI,CAAC,WAAW,EAAE,CAAA;IAEvC,MAAM,aAAa,GAAG,CAAC,IAAU,EAAU,EAAE;QAC3C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAEzC,kDAAkD;QAClD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAEnE,oBAAoB;QACpB,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE1E,2CAA2C;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAElG,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,IAAI,GAAW,aAAa,CAAC,IAAI,CAAC,CAAA;IAExC,OAAO;QACL,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC,CAAA;AAzBY,QAAA,cAAc,kBAyB1B;AAEM,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,IAAA,iBAAM,EAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC,CAAA;AAAhE,QAAA,uBAAuB,2BAAyC"}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import { LadokMellanlagerApiClient } from "@kth/ladok-mellanlager-client";
|
|
2
|
+
import { ExaminationModule } from "../mapExaminationModule";
|
|
2
3
|
import { Language } from "./languageUtil";
|
|
3
4
|
export declare const handleError: (message: string, error?: any) => {
|
|
4
5
|
error: string;
|
|
5
6
|
details: any;
|
|
6
7
|
};
|
|
8
|
+
export declare const formatExaminationTitles: (examinationModules: (ExaminationModule | undefined)[]) => {
|
|
9
|
+
completeExaminationStrings: string[];
|
|
10
|
+
titles: string[];
|
|
11
|
+
};
|
|
7
12
|
export declare const fetchStructure: (uid: string, ladokClient: LadokMellanlagerApiClient) => Promise<{
|
|
8
13
|
AvserTillfalle: boolean;
|
|
9
14
|
Publicerad: boolean;
|
|
10
15
|
UtbildningsbasUID: string;
|
|
16
|
+
Valinformation?: {
|
|
17
|
+
EngelskBeskrivning?: string;
|
|
18
|
+
SvenskBeskrivning?: string;
|
|
19
|
+
ValUID: string;
|
|
20
|
+
ValmojlighetsID: string;
|
|
21
|
+
};
|
|
11
22
|
}[]>;
|
|
12
23
|
export declare const fetchModules: (utbildningsbasUIDn: string[], ladokClient: LadokMellanlagerApiClient) => Promise<(import("@kth/ladok-mellanlager-client").Utbildningsinstans | undefined)[]>;
|
|
13
|
-
export declare const getExaminationModules: (utbildningsinstansUID: string, language: Language, ladokClient: LadokMellanlagerApiClient) => Promise<(
|
|
24
|
+
export declare const getExaminationModules: (utbildningsinstansUID: string, language: Language, ladokClient: LadokMellanlagerApiClient) => Promise<(ExaminationModule | undefined)[]>;
|
|
@@ -9,13 +9,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.getExaminationModules = exports.fetchModules = exports.fetchStructure = exports.handleError = void 0;
|
|
12
|
+
exports.getExaminationModules = exports.fetchModules = exports.fetchStructure = exports.formatExaminationTitles = exports.handleError = void 0;
|
|
13
13
|
const mapExaminationModule_1 = require("../mapExaminationModule");
|
|
14
|
+
const gradingScalesUtils_1 = require("./gradingScalesUtils");
|
|
14
15
|
const handleError = (message, error) => {
|
|
15
16
|
console.error(message, error);
|
|
16
17
|
return { error: message, details: (error === null || error === void 0 ? void 0 : error.message) || "Unknown error" };
|
|
17
18
|
};
|
|
18
19
|
exports.handleError = handleError;
|
|
20
|
+
const formatExaminationTitles = (examinationModules) => {
|
|
21
|
+
try {
|
|
22
|
+
const completeExaminationStrings = examinationModules.map(m => { var _a, _b; return `${m === null || m === void 0 ? void 0 : m.kod} - ${m === null || m === void 0 ? void 0 : m.benamning}, ${m === null || m === void 0 ? void 0 : m.omfattning.formattedWithUnit}, ${(_a = m === null || m === void 0 ? void 0 : m.betygsskala) === null || _a === void 0 ? void 0 : _a.name}: ${(_b = m === null || m === void 0 ? void 0 : m.betygsskala) === null || _b === void 0 ? void 0 : _b.formatted}`; });
|
|
23
|
+
const examinationTitles = examinationModules.map(m => `${m === null || m === void 0 ? void 0 : m.kod} - ${m === null || m === void 0 ? void 0 : m.benamning}, ${m === null || m === void 0 ? void 0 : m.omfattning.formattedWithUnit}`);
|
|
24
|
+
return {
|
|
25
|
+
completeExaminationStrings: completeExaminationStrings,
|
|
26
|
+
titles: examinationTitles,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw new Error(`Failed to format examination titles: ${error}`);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.formatExaminationTitles = formatExaminationTitles;
|
|
19
34
|
const fetchStructure = (uid, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
35
|
var _a;
|
|
21
36
|
try {
|
|
@@ -50,8 +65,9 @@ const getExaminationModules = (utbildningsinstansUID, language, ladokClient) =>
|
|
|
50
65
|
const strukturDelar = yield (0, exports.fetchStructure)(utbildningsinstansUID, ladokClient);
|
|
51
66
|
const utbildningsbasUIDn = strukturDelar.map((strukturdel) => strukturdel.UtbildningsbasUID);
|
|
52
67
|
const examinationModules = yield (0, exports.fetchModules)(utbildningsbasUIDn, ladokClient);
|
|
68
|
+
const gradingScalesCodes = yield (0, gradingScalesUtils_1.getGradingScalesCodes)(ladokClient);
|
|
53
69
|
const mappedExaminationModules = examinationModules.map((m) => {
|
|
54
|
-
return m && (0, mapExaminationModule_1.mapExaminationModule)(m, language);
|
|
70
|
+
return m && (0, mapExaminationModule_1.mapExaminationModule)(m, language, gradingScalesCodes);
|
|
55
71
|
});
|
|
56
72
|
return mappedExaminationModules;
|
|
57
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"examinationModulesUtil.js","sourceRoot":"","sources":["../../src/utils/examinationModulesUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"examinationModulesUtil.js","sourceRoot":"","sources":["../../src/utils/examinationModulesUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LadokMellanlagerApiClient } from "@kth/ladok-mellanlager-client";
|
|
2
|
+
export declare const handleError: (message: string, error?: any) => {
|
|
3
|
+
error: string;
|
|
4
|
+
details: any;
|
|
5
|
+
};
|
|
6
|
+
export declare const fetchGradingScales: (ladokClient: LadokMellanlagerApiClient) => Promise<import("@kth/ladok-mellanlager-client").BetygsskalaItem[]>;
|
|
7
|
+
export declare const getGradingScales: (ladokClient: LadokMellanlagerApiClient) => Promise<import("../mapGradingScales").GradingScales>;
|
|
8
|
+
export declare const getGradingScalesCodes: (ladokClient: LadokMellanlagerApiClient) => Promise<import("../mapGradingScales").GradingScalesCodes>;
|
|
@@ -0,0 +1,52 @@
|
|
|
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.getGradingScalesCodes = exports.getGradingScales = exports.fetchGradingScales = exports.handleError = void 0;
|
|
13
|
+
const mapGradingScales_1 = require("../mapGradingScales");
|
|
14
|
+
const handleError = (message, error) => {
|
|
15
|
+
console.error(message, error);
|
|
16
|
+
return { error: message, details: (error === null || error === void 0 ? void 0 : error.message) || "Unknown error" };
|
|
17
|
+
};
|
|
18
|
+
exports.handleError = handleError;
|
|
19
|
+
const fetchGradingScales = (ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
var _a;
|
|
21
|
+
try {
|
|
22
|
+
const gradingScales = yield ladokClient.betygsskala();
|
|
23
|
+
return ((_a = gradingScales === null || gradingScales === void 0 ? void 0 : gradingScales.data) === null || _a === void 0 ? void 0 : _a.Betygsskala) || [];
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
throw (0, exports.handleError)("Failed to fetch grading scales", error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
exports.fetchGradingScales = fetchGradingScales;
|
|
30
|
+
const getGradingScales = (ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
try {
|
|
32
|
+
const gradingScales = yield (0, exports.fetchGradingScales)(ladokClient);
|
|
33
|
+
const mappedGradingScales = (0, mapGradingScales_1.mapGradingScales)(gradingScales);
|
|
34
|
+
return mappedGradingScales;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw (0, exports.handleError)("Unexpected error during processing", error);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
exports.getGradingScales = getGradingScales;
|
|
41
|
+
const getGradingScalesCodes = (ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
+
try {
|
|
43
|
+
const gradingScales = yield (0, exports.fetchGradingScales)(ladokClient);
|
|
44
|
+
const mappedGradingScalesCodes = (0, mapGradingScales_1.mapGradingScalesCodes)(gradingScales);
|
|
45
|
+
return mappedGradingScalesCodes;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw (0, exports.handleError)("Unexpected error during processing", error);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
exports.getGradingScalesCodes = getGradingScalesCodes;
|
|
52
|
+
//# sourceMappingURL=gradingScalesUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradingScalesUtils.js","sourceRoot":"","sources":["../../src/utils/gradingScalesUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,0DAA8E;AAEvE,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAW,EAAE,EAAE;IAC1D,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,eAAe,EAAE,CAAC;AACxE,CAAC,CAAC;AAHW,QAAA,WAAW,eAGtB;AAEK,MAAM,kBAAkB,GAAG,CAChC,WAAsC,EACtC,EAAE;;IACF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;QACtD,OAAO,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,0CAAE,WAAW,KAAI,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,mBAAW,EAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAA,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,WAAsC,EACtC,EAAE;IACF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAkB,EAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,mBAAmB,GAAG,IAAA,mCAAgB,EAAC,aAAa,CAAC,CAAC;QAC5D,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,mBAAW,EAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;AACH,CAAC,CAAA,CAAC;AAVW,QAAA,gBAAgB,oBAU3B;AAEK,MAAM,qBAAqB,GAAG,CACnC,WAAsC,EACtC,EAAE;IACF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAkB,EAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,wBAAwB,GAAG,IAAA,wCAAqB,EAAC,aAAa,CAAC,CAAC;QACtE,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,mBAAW,EAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;AACH,CAAC,CAAA,CAAC;AAVW,QAAA,qBAAqB,yBAUhC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Grunddata, Organisation, Studietakt, Utbildningstyp } from "@kth/ladok-attributvarde-utils";
|
|
1
|
+
import { Grunddata, Organisation, Studietakt, Tilltradesniva, Utbildningstyp } from "@kth/ladok-attributvarde-utils";
|
|
2
2
|
export type Language = "sv" | "en";
|
|
3
3
|
export interface TranslatedGrunddata {
|
|
4
4
|
id: string;
|
|
@@ -20,10 +20,17 @@ export interface TranslatedUtbildningstyp extends TranslatedGrunddata {
|
|
|
20
20
|
name: string;
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
+
export interface TranslatedTilltradesniva extends TranslatedGrunddata {
|
|
24
|
+
level: {
|
|
25
|
+
code: string;
|
|
26
|
+
name: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
23
29
|
export interface TranslatedStudietakt extends TranslatedGrunddata {
|
|
24
30
|
takt: Studietakt["takt"];
|
|
25
31
|
}
|
|
26
32
|
export declare const translateGrunddata: (grunddata: Grunddata, language: Language) => TranslatedGrunddata;
|
|
27
33
|
export declare const translateOrganisation: (organisation: Organisation, language: Language) => TranslatedOrganisation;
|
|
28
34
|
export declare const translateUtbildningstyp: (utbildningstyp: Utbildningstyp, language: Language) => TranslatedUtbildningstyp;
|
|
35
|
+
export declare const translatedTilltradesniva: (utbildningstyp: Tilltradesniva, language: Language) => TranslatedTilltradesniva;
|
|
29
36
|
export declare const translateStudietakt: (studietakt: Studietakt, language: Language) => TranslatedStudietakt;
|
|
@@ -11,14 +11,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
return t;
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.translateStudietakt = exports.translateUtbildningstyp = exports.translateOrganisation = exports.translateGrunddata = void 0;
|
|
14
|
+
exports.translateStudietakt = exports.translatedTilltradesniva = exports.translateUtbildningstyp = exports.translateOrganisation = exports.translateGrunddata = void 0;
|
|
15
15
|
const translateGrunddata = (grunddata, language) => {
|
|
16
16
|
const { id, code } = grunddata, rest = __rest(grunddata, ["id", "code"]);
|
|
17
17
|
return {
|
|
18
18
|
id,
|
|
19
19
|
code,
|
|
20
20
|
name: rest[language],
|
|
21
|
-
nameOther: rest[language ===
|
|
21
|
+
nameOther: rest[language === "sv" ? "en" : "sv"],
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
exports.translateGrunddata = translateGrunddata;
|
|
@@ -39,6 +39,14 @@ const translateUtbildningstyp = (utbildningstyp, language) => {
|
|
|
39
39
|
} });
|
|
40
40
|
};
|
|
41
41
|
exports.translateUtbildningstyp = translateUtbildningstyp;
|
|
42
|
+
const translatedTilltradesniva = (utbildningstyp, language) => {
|
|
43
|
+
const _a = utbildningstyp.level, { code } = _a, rest = __rest(_a, ["code"]);
|
|
44
|
+
return Object.assign(Object.assign({}, (0, exports.translateGrunddata)(utbildningstyp, language)), { level: {
|
|
45
|
+
code,
|
|
46
|
+
name: rest[language],
|
|
47
|
+
} });
|
|
48
|
+
};
|
|
49
|
+
exports.translatedTilltradesniva = translatedTilltradesniva;
|
|
42
50
|
const translateStudietakt = (studietakt, language) => {
|
|
43
51
|
return Object.assign(Object.assign({}, (0, exports.translateGrunddata)(studietakt, language)), { takt: studietakt.takt });
|
|
44
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageUtil.js","sourceRoot":"","sources":["../../src/utils/languageUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"languageUtil.js","sourceRoot":"","sources":["../../src/utils/languageUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AA4CO,MAAM,kBAAkB,GAAG,CAChC,SAAoB,EACpB,QAAkB,EACG,EAAE;IACvB,MAAM,EAAE,EAAE,EAAE,IAAI,KAAc,SAAS,EAAlB,IAAI,UAAK,SAAS,EAAjC,cAAqB,CAAY,CAAC;IACxC,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;QACpB,SAAS,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;KACjD,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,kBAAkB,sBAW7B;AAEK,MAAM,qBAAqB,GAAG,CACnC,YAA0B,EAC1B,QAAkB,EACM,EAAE;IAC1B,uCACK,IAAA,0BAAkB,EAAC,YAAY,EAAE,QAAQ,CAAC,KAC7C,oBAAoB,EAAE,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAC7D;AACJ,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEK,MAAM,uBAAuB,GAAG,CACrC,cAA8B,EAC9B,QAAkB,EACQ,EAAE;IAC5B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC;IAC9C,MAAM,KAAoB,cAAc,CAAC,KAAK,EAAxC,EAAE,IAAI,OAAkC,EAA7B,IAAI,cAAf,QAAiB,CAAuB,CAAC;IAC/C,uCACK,IAAA,0BAAkB,EAAC,cAAc,EAAE,QAAQ,CAAC,KAC/C,WAAW,EAAE;YACX,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI;YACrC,EAAE;YACF,EAAE;SACH,EACD,KAAK,EAAE;YACL,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;SACrB,IACD;AACJ,CAAC,CAAC;AAlBW,QAAA,uBAAuB,2BAkBlC;AAEK,MAAM,wBAAwB,GAAG,CACtC,cAA8B,EAC9B,QAAkB,EACQ,EAAE;IAC5B,MAAM,KAAoB,cAAc,CAAC,KAAK,EAAxC,EAAE,IAAI,OAAkC,EAA7B,IAAI,cAAf,QAAiB,CAAuB,CAAC;IAC/C,uCACK,IAAA,0BAAkB,EAAC,cAAc,EAAE,QAAQ,CAAC,KAC/C,KAAK,EAAE;YACL,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;SACrB,IACD;AACJ,CAAC,CAAC;AAZW,QAAA,wBAAwB,4BAYnC;AAEK,MAAM,mBAAmB,GAAG,CACjC,UAAsB,EACtB,QAAkB,EACI,EAAE;IACxB,uCACK,IAAA,0BAAkB,EAAC,UAAU,EAAE,QAAQ,CAAC,KAC3C,IAAI,EAAE,UAAU,CAAC,IAAI,IACrB;AACJ,CAAC,CAAC;AARW,QAAA,mBAAmB,uBAQ9B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const transformPeriodInDigits: (period: string) => string | null;
|
|
2
|
+
export declare const transformDigitsInPeriod: (period: string) => string;
|
|
2
3
|
export declare const getPeriodCodeForDate: (date: Date) => string;
|
|
3
4
|
export declare const getKthStudyPeriod: (date: Date, startPeriod: {
|
|
4
5
|
code: string | undefined;
|
package/dist/utils/periodUtil.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getKthStudyPeriod = exports.getPeriodCodeForDate = exports.transformPeriodInDigits = void 0;
|
|
3
|
+
exports.getKthStudyPeriod = exports.getPeriodCodeForDate = exports.transformDigitsInPeriod = exports.transformPeriodInDigits = void 0;
|
|
4
4
|
const transformPeriodInDigits = (period) => {
|
|
5
5
|
const validPrefixes = ["HT", "VT"];
|
|
6
6
|
if (validPrefixes.includes(period.slice(0, 2)) && period.length > 2) {
|
|
@@ -11,6 +11,12 @@ const transformPeriodInDigits = (period) => {
|
|
|
11
11
|
return null;
|
|
12
12
|
};
|
|
13
13
|
exports.transformPeriodInDigits = transformPeriodInDigits;
|
|
14
|
+
const transformDigitsInPeriod = (period) => {
|
|
15
|
+
const year = period.slice(0, 4);
|
|
16
|
+
const semester = period.slice(4) === "1" ? "VT" : "HT";
|
|
17
|
+
return `${semester}${year}`;
|
|
18
|
+
};
|
|
19
|
+
exports.transformDigitsInPeriod = transformDigitsInPeriod;
|
|
14
20
|
const getPeriodCodeForDate = (date) => {
|
|
15
21
|
const JULY = 6;
|
|
16
22
|
const year = date.getFullYear();
|