@royalschedule/maps 2.0.3 → 2.0.4

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.
@@ -0,0 +1,3 @@
1
+ import { Types } from '../../core/types';
2
+ import { Lesson } from '../types/lesson';
3
+ export default function (lessons: Lesson[], courses: Types.course[], teachers: Types.course[], importErrors: string[], importWarnings: string[]): Types.courseEvent[];
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+
8
+ var _moment = _interopRequireDefault(require("moment"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ var firstDay = _moment.default.utc('1970-01-05');
19
+
20
+ function fromTimeString(day, timeString) {
21
+ var [hours, minutes, seconds] = timeString.split(':').map(time => parseInt(time));
22
+ return firstDay.clone().add(day, 'day').set('hour', hours).set('minute', minutes);
23
+ }
24
+
25
+ function _default(lessons, courses, teachers, importErrors, importWarnings) {
26
+ var group2course = new Map();
27
+ courses.forEach(c => group2course.set(c.ids, c));
28
+ var teacherSet = new Set();
29
+ teachers.forEach(t => teacherSet.add(t.ids));
30
+ var events = [];
31
+ lessons.forEach(l => {
32
+ var _course$teachers, _l$info$room;
33
+
34
+ if (l.info.groups.length != 1) {
35
+ var warn = "The lesson with id \"".concat(l.id, " contained ").concat(l.info.groups.length, " number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.");
36
+ importWarnings.push(warn);
37
+ return;
38
+ }
39
+
40
+ var course_id = l.info.groups[0].id.toString();
41
+ var course = group2course.get(course_id);
42
+
43
+ if (!course) {
44
+ var _warn = "The lesson with id \"".concat(l.id, "\" referenced the unknown/faulty schedule_group (course) \"").concat(course_id, "\" and was therefore ignored.");
45
+
46
+ importWarnings.push(_warn);
47
+ return;
48
+ }
49
+
50
+ var start = fromTimeString(l.weekday, l.info.start);
51
+ var end = fromTimeString(l.weekday, l.info.end);
52
+ var duration = l.info.duration;
53
+ var eventTeachers;
54
+
55
+ if (!course.teachers || !((_course$teachers = course.teachers) !== null && _course$teachers !== void 0 && _course$teachers.every(x => l.info.teachers.some(y => y.id.toString() == x)))) {
56
+ eventTeachers = l.info.teachers.map(x => x.id.toString());
57
+
58
+ for (var teacher of eventTeachers) {
59
+ if (!teacherSet.has(teacher)) {
60
+ var _warn2 = "The lesson with id \"".concat(l.id, "\" referenced the unknown teacher \"").concat(teacher, "\" and was therefore ignored.");
61
+
62
+ importWarnings.push(_warn2);
63
+ return;
64
+ }
65
+ }
66
+ }
67
+
68
+ var location = (_l$info$room = l.info.room) === null || _l$info$room === void 0 ? void 0 : _l$info$room.id.toString();
69
+ events.push(_objectSpread(_objectSpread({
70
+ ids: l.id.toString(),
71
+ start,
72
+ end,
73
+ duration,
74
+ course: course_id
75
+ }, location && {
76
+ inLocations: [location],
77
+ locations: [{
78
+ locations: [location]
79
+ }]
80
+ }), eventTeachers && {
81
+ teachers: eventTeachers
82
+ }));
83
+ });
84
+ return events;
85
+ }
86
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Admentum/from/events.ts"],"names":[],"mappings":";;;;;;;AACA;;;;;;;;;;AAKA,IAAM,QAAQ,GAAG,gBAAO,GAAP,CAAW,YAAX,CAAjB;;AAEA,SAAS,cAAT,CACE,GADF,EAEE,UAFF,EAEoB;AAElB,MAAI,CAAC,KAAD,EAAQ,OAAR,EAAiB,OAAjB,IAA4B,UAAU,CAAC,KAAX,CAAiB,GAAjB,EAAsB,GAAtB,CAA2B,IAAD,IAAkB,QAAQ,CAAC,IAAD,CAApD,CAAhC;AACA,SAAO,QAAQ,CAAC,KAAT,GAAiB,GAAjB,CAAqB,GAArB,EAA0B,KAA1B,EAAiC,GAAjC,CAAqC,MAArC,EAA6C,KAA7C,EAAoD,GAApD,CAAwD,QAAxD,EAAkE,OAAlE,CAAP;AACD;;AAGa,kBACZ,OADY,EAEZ,OAFY,EAGZ,QAHY,EAIZ,YAJY,EAKZ,cALY,EAKc;AAI1B,MAAI,YAAY,GAAG,IAAI,GAAJ,EAAnB;AACA,EAAA,OAAO,CAAC,OAAR,CAAgB,CAAC,IAAI,YAAY,CAAC,GAAb,CAAiB,CAAC,CAAC,GAAnB,EAAyB,CAAzB,CAArB;AAGA,MAAI,UAAU,GAAG,IAAI,GAAJ,EAAjB;AACA,EAAA,QAAQ,CAAC,OAAT,CAAiB,CAAC,IAAI,UAAU,CAAC,GAAX,CAAe,CAAC,CAAC,GAAjB,CAAtB;AAEA,MAAI,MAAM,GAAwB,EAAlC;AACA,EAAA,OAAO,CACJ,OADH,CACW,CAAC,IAAG;AAAA;;AAGX,QAAI,CAAC,CAAC,IAAF,CAAO,MAAP,CAAc,MAAd,IAAwB,CAA5B,EAA+B;AAC7B,UAAI,IAAI,kCAA0B,CAAC,CAAC,EAA5B,wBAA4C,CAAC,CAAC,IAAF,CAAO,MAAP,CAAc,MAA1D,yHAAR;AACA,MAAA,cAAc,CAAC,IAAf,CAAoB,IAApB;AACA;AACD;;AACD,QAAI,SAAS,GAAG,CAAC,CAAC,IAAF,CAAO,MAAP,CAAc,CAAd,EAAiB,EAAjB,CAAoB,QAApB,EAAhB;AAGA,QAAI,MAAM,GAAG,YAAY,CAAC,GAAb,CAAiB,SAAjB,CAAb;;AACA,QAAK,CAAE,MAAP,EAAe;AACb,UAAI,KAAI,kCAA0B,CAAC,CAAC,EAA5B,wEAA0F,SAA1F,kCAAR;;AACA,MAAA,cAAc,CAAC,IAAf,CAAoB,KAApB;AACA;AACD;;AAED,QAAI,KAAK,GAAM,cAAc,CAAC,CAAC,CAAC,OAAH,EAAY,CAAC,CAAC,IAAF,CAAO,KAAnB,CAA7B;AACA,QAAI,GAAG,GAAQ,cAAc,CAAC,CAAC,CAAC,OAAH,EAAY,CAAC,CAAC,IAAF,CAAO,GAAnB,CAA7B;AACA,QAAI,QAAQ,GAAG,CAAC,CAAC,IAAF,CAAO,QAAtB;AAGA,QAAI,aAAJ;;AACA,QAAK,CAAE,MAAM,CAAC,QAAT,IAAqB,sBAAG,MAAM,CAAC,QAAV,6CAAG,iBAA8B,KAA9B,CAAoC,CAAC,IAAI,CAAC,CAAC,IAAF,CAAO,QAAP,CAAgB,IAAhB,CAAqB,CAAC,IAAI,CAAC,CAAC,EAAF,CAAK,QAAL,MAAmB,CAA7C,CAAzC,CAAH,CAA1B,EAAwH;AACtH,MAAA,aAAa,GAAG,CAAC,CAAC,IAAF,CAAO,QAAP,CAAgB,GAAhB,CAAoB,CAAC,IAAI,CAAC,CAAC,EAAF,CAAK,QAAL,EAAzB,CAAhB;;AAGA,WAAK,IAAM,OAAX,IAAsB,aAAtB,EAAqC;AACnC,YAAK,CAAE,UAAU,CAAC,GAAX,CAAe,OAAf,CAAP,EAAgC;AAC9B,cAAI,MAAI,kCAA0B,CAAC,CAAC,EAA5B,iDAAmE,OAAnE,kCAAR;;AACA,UAAA,cAAc,CAAC,IAAf,CAAoB,MAApB;AACA;AACD;AACF;AACF;;AAGD,QAAI,QAAQ,mBAAG,CAAC,CAAC,IAAF,CAAO,IAAV,iDAAG,aAAa,EAAb,CAAgB,QAAhB,EAAf;AAEA,IAAA,MAAM,CAAC,IAAP;AACE,MAAA,GAAG,EAAE,CAAC,CAAC,EAAF,CAAK,QAAL,EADP;AAEE,MAAA,KAFF;AAGE,MAAA,GAHF;AAIE,MAAA,QAJF;AAKE,MAAA,MAAM,EAAE;AALV,OAMM,QAAQ,IAAI;AAAE,MAAA,WAAW,EAAE,CAAE,QAAF,CAAf;AAA6B,MAAA,SAAS,EAAE,CAAC;AAAE,QAAA,SAAS,EAAE,CAAE,QAAF;AAAb,OAAD;AAAxC,KANlB,GAOM,aAAa,IAAI;AAAE,MAAA,QAAQ,EAAE;AAAZ,KAPvB;AASD,GAlDH;AAoDA,SAAO,MAAP;AACD","sourceRoot":"","file":"events.js"}
@@ -13,6 +13,8 @@ var _groups2 = _interopRequireDefault(require("./groups"));
13
13
 
14
14
  var _courses2 = _interopRequireDefault(require("./courses"));
15
15
 
16
+ var _events2 = _interopRequireDefault(require("./events"));
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -32,10 +34,10 @@ function _default(schedule) {
32
34
  var importErrors = [];
33
35
  var importWarnings = [];
34
36
  var locations = (0, _locations2.default)(schedule.rooms, importErrors, importWarnings);
35
- var teachers = (0, _teachers2.default)(schedule.schedule_groups, importErrors, importWarnings);
37
+ var teachers = (0, _teachers2.default)(schedule.schedule_groups, schedule.lessons, importErrors, importWarnings);
36
38
  var groups = (0, _groups2.default)(schedule.primary_groups, importErrors, importWarnings);
37
39
  var courses = (0, _courses2.default)(schedule.schedule_groups, school, importErrors, importWarnings);
38
- var events = [];
40
+ var events = (0, _events2.default)(schedule.lessons, courses, teachers, importErrors, importWarnings);
39
41
  return _objectSpread(_objectSpread(_objectSpread({}, {
40
42
  groups,
41
43
  teachers,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Admentum/from/schedules.ts"],"names":[],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;AAKc,kBACZ,QADY,EACM;AAMlB,MAAI,QAAQ,CAAC,OAAT,CAAiB,MAAjB,IAA2B,CAA/B,EAAkC;AAChC,WAAO;AAAE,MAAA,YAAY,EAAE,oBAAa,QAAQ,CAAC,OAAT,CAAiB,MAA9B;AAAhB,KAAP;AACD;;AACD,MAAI,MAAM,GAAG,QAAQ,CAAC,OAAT,CAAiB,CAAjB,CAAb;AAGA,MAAI,YAAY,GAAe,EAA/B;AACA,MAAI,cAAc,GAAa,EAA/B;AAEA,MAAM,SAAS,GAAyB,yBAAW,QAAQ,CAAC,KAApB,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AACA,MAAM,QAAQ,GAA0B,wBAAU,QAAQ,CAAC,eAAnB,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AACA,MAAM,MAAM,GAA4B,sBAAQ,QAAQ,CAAC,cAAjB,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AACA,MAAM,OAAO,GAA2B,uBAAS,QAAQ,CAAC,eAAlB,EAAmC,MAAnC,EAA2C,YAA3C,EAAyD,cAAzD,CAAxC;AAEA,MAAM,MAAM,GAA4B,EAAxC;AAEA,uDAAY;AAAE,IAAA,MAAF;AAAU,IAAA,QAAV;AAAoB,IAAA,SAApB;AAA+B,IAAA,OAA/B;AAAwC,IAAA;AAAxC,GAAZ,GACa,YAAY,CAAC,MAAb,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAD1D,GAEa,cAAc,CAAC,MAAf,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAF1D;AAGD","sourceRoot":"","file":"schedules.js"}
1
+ {"version":3,"sources":["../../../src/Admentum/from/schedules.ts"],"names":[],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAKc,kBACZ,QADY,EACM;AAMlB,MAAI,QAAQ,CAAC,OAAT,CAAiB,MAAjB,IAA2B,CAA/B,EAAkC;AAChC,WAAO;AAAE,MAAA,YAAY,EAAE,oBAAa,QAAQ,CAAC,OAAT,CAAiB,MAA9B;AAAhB,KAAP;AACD;;AACD,MAAI,MAAM,GAAG,QAAQ,CAAC,OAAT,CAAiB,CAAjB,CAAb;AAGA,MAAI,YAAY,GAAe,EAA/B;AACA,MAAI,cAAc,GAAa,EAA/B;AAEA,MAAM,SAAS,GAA4B,yBAAW,QAAQ,CAAC,KAApB,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,QAAQ,GAA6B,wBAAU,QAAQ,CAAC,eAAnB,EAAoC,QAAQ,CAAC,OAA7C,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,MAAM,GAA+B,sBAAQ,QAAQ,CAAC,cAAjB,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,OAAO,GAA8B,uBAAS,QAAQ,CAAC,eAAlB,EAAmC,MAAnC,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AACA,MAAM,MAAM,GAA+B,sBAAQ,QAAQ,CAAC,OAAjB,EAA0B,OAA1B,EAAmC,QAAnC,EAAsD,YAAtD,EAAoE,cAApE,CAA3C;AAEA,uDAAY;AAAE,IAAA,MAAF;AAAU,IAAA,QAAV;AAAoB,IAAA,SAApB;AAA+B,IAAA,OAA/B;AAAwC,IAAA;AAAxC,GAAZ,GACa,YAAY,CAAC,MAAb,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAD1D,GAEa,cAAc,CAAC,MAAf,GAAwB;AAAE,IAAA;AAAF,GAAxB,GAA6C,EAF1D;AAGD","sourceRoot":"","file":"schedules.js"}
@@ -1,3 +1,4 @@
1
- import { ScheduleGroup } from '../types/schedule-group';
2
1
  import { Types } from '../../core/types';
3
- export default function (scheduleGroups: ScheduleGroup[], importErrors: string[], importWarnings: string[]): Types.teacher[];
2
+ import { ScheduleGroup } from '../types/schedule-group';
3
+ import { Lesson } from '../types/lesson';
4
+ export default function (scheduleGroups: ScheduleGroup[], lessons: Lesson[], importErrors: string[], importWarnings: string[]): Types.teacher[];
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = _default;
7
7
 
8
- function _default(scheduleGroups, importErrors, importWarnings) {
8
+ function _default(scheduleGroups, lessons, importErrors, importWarnings) {
9
9
  var teacherSet = new Map();
10
10
  scheduleGroups.forEach(scheduleGroup => {
11
11
  scheduleGroup.teachers.forEach(teacher => {
@@ -15,6 +15,14 @@ function _default(scheduleGroups, importErrors, importWarnings) {
15
15
  });
16
16
  });
17
17
  });
18
+ lessons.forEach(lesson => {
19
+ lesson.teachers.forEach(teacher => {
20
+ teacherSet.set(teacher.id, {
21
+ ids: teacher.id.toString(),
22
+ displayName: teacher.first_name + " " + teacher.last_name
23
+ });
24
+ });
25
+ });
18
26
  return Array.from(teacherSet.values());
19
27
  }
20
28
  //# sourceMappingURL=teachers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Admentum/from/teachers.ts"],"names":[],"mappings":";;;;;;;AAGc,kBACZ,cADY,EAEZ,YAFY,EAGZ,cAHY,EAGY;AAGxB,MAAI,UAAU,GAA+B,IAAI,GAAJ,EAA7C;AAEA,EAAA,cAAc,CAAC,OAAf,CAAuB,aAAa,IAAG;AACrC,IAAA,aAAa,CAAC,QAAd,CAAuB,OAAvB,CAA+B,OAAO,IAAG;AACvC,MAAA,UAAU,CAAC,GAAX,CAAe,OAAO,CAAC,EAAvB,EAA2B;AACzB,QAAA,GAAG,EAAU,OAAO,CAAC,EAAR,CAAW,QAAX,EADY;AAEzB,QAAA,WAAW,EAAE,OAAO,CAAC,UAAR,GAAqB,GAArB,GAA2B,OAAO,CAAC;AAFvB,OAA3B;AAID,KALD;AAMD,GAPD;AASA,SAAO,KAAK,CAAC,IAAN,CAAW,UAAU,CAAC,MAAX,EAAX,CAAP;AACD","sourceRoot":"","file":"teachers.js"}
1
+ {"version":3,"sources":["../../../src/Admentum/from/teachers.ts"],"names":[],"mappings":";;;;;;;AAIc,kBACZ,cADY,EAEZ,OAFY,EAGZ,YAHY,EAIZ,cAJY,EAIY;AAGxB,MAAI,UAAU,GAA+B,IAAI,GAAJ,EAA7C;AAEA,EAAA,cAAc,CAAC,OAAf,CAAuB,aAAa,IAAG;AACrC,IAAA,aAAa,CAAC,QAAd,CAAuB,OAAvB,CAA+B,OAAO,IAAG;AACvC,MAAA,UAAU,CAAC,GAAX,CAAe,OAAO,CAAC,EAAvB,EAA2B;AACzB,QAAA,GAAG,EAAU,OAAO,CAAC,EAAR,CAAW,QAAX,EADY;AAEzB,QAAA,WAAW,EAAE,OAAO,CAAC,UAAR,GAAqB,GAArB,GAA2B,OAAO,CAAC;AAFvB,OAA3B;AAID,KALD;AAMD,GAPD;AASA,EAAA,OAAO,CAAC,OAAR,CAAgB,MAAM,IAAG;AACvB,IAAA,MAAM,CAAC,QAAP,CAAgB,OAAhB,CAAwB,OAAO,IAAG;AAChC,MAAA,UAAU,CAAC,GAAX,CAAe,OAAO,CAAC,EAAvB,EAA2B;AACzB,QAAA,GAAG,EAAU,OAAO,CAAC,EAAR,CAAW,QAAX,EADY;AAEzB,QAAA,WAAW,EAAE,OAAO,CAAC,UAAR,GAAqB,GAArB,GAA2B,OAAO,CAAC;AAFvB,OAA3B;AAID,KALD;AAMD,GAPD;AASA,SAAO,KAAK,CAAC,IAAN,CAAW,UAAU,CAAC,MAAX,EAAX,CAAP;AACD","sourceRoot":"","file":"teachers.js"}
@@ -1,10 +0,0 @@
1
- export interface Course {
2
- id: number;
3
- }
4
- export interface ScheduleGroup {
5
- id: number;
6
- }
7
- export interface CourseSection {
8
- course: Course;
9
- schedule_group: ScheduleGroup;
10
- }
@@ -1,6 +1,2 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
2
  //# sourceMappingURL=course-section.js.map
@@ -0,0 +1,22 @@
1
+ import { User } from './user';
2
+ export interface LessonInfo {
3
+ start: string;
4
+ end: string;
5
+ duration: number;
6
+ room?: {
7
+ id: number;
8
+ };
9
+ teachers: {
10
+ id: number;
11
+ }[];
12
+ groups: {
13
+ id: number;
14
+ }[];
15
+ }
16
+ export interface Lesson {
17
+ id: number;
18
+ weekday: number;
19
+ date: string;
20
+ info: LessonInfo;
21
+ teachers: User[];
22
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=lesson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"","file":"lesson.js"}
@@ -1,15 +1,15 @@
1
1
  import { School } from './school';
2
2
  import { Room } from './room';
3
- import { CourseSection } from './course-section';
4
3
  import { PrimaryGroup } from './primary-group';
5
4
  import { ScheduleGroup } from './schedule-group';
5
+ import { Lesson } from './lesson';
6
6
  export interface Schedule {
7
7
  schedule: {
8
8
  id: number;
9
9
  };
10
10
  schools: School[];
11
11
  rooms: Room[];
12
- course_sections: CourseSection[];
13
12
  primary_groups: PrimaryGroup[];
14
13
  schedule_groups: ScheduleGroup[];
14
+ lessons: Lesson[];
15
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@royalschedule/maps",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",