aboutsummaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-04-13 10:02:24 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-04-13 10:02:24 -0500
commit569488c24ac0ee5c4cca9adfb0dc3f3aa9e7eca4 (patch)
treec4a895432fbf193d5d753c3bb6f22318f45fdd15 /src/models
parent67b7f56f9aeaf5d32cc07d0d776d2e4e95dea21c (diff)
parente14581fb25febd28b8e55ca8e2b24ebafa3abbc2 (diff)
Merge pull request #1 from cobraguy/typescript-migration
Migrate to TypeScript
Diffstat (limited to 'src/models')
-rw-r--r--src/models/EventInfo.ts (renamed from src/models/EventInfo.js)17
-rw-r--r--src/models/Lab.ts (renamed from src/models/Lab.js)6
-rw-r--r--src/models/PeerTeacher.ts (renamed from src/models/PeerTeacher.js)14
3 files changed, 30 insertions, 7 deletions
diff --git a/src/models/EventInfo.js b/src/models/EventInfo.ts
index c1624a8..4493162 100644
--- a/src/models/EventInfo.js
+++ b/src/models/EventInfo.ts
@@ -1,13 +1,19 @@
export default class EventInfo {
- constructor(days = '', start = 0, end = 0) {
+ days: string;
+
+ start: number;
+
+ end: number;
+
+ constructor(days: string = '', start = 0, end = 0) {
this.days = days;
this.start = start;
this.end = end;
}
- static timeToStr(time) {
+ static timeToStr(time: number) {
let hour = Math.floor(time / 100);
- let minute = time % 100;
+ const minute = time % 100;
const meridiem = (hour < 12) ? 'AM' : 'PM';
if (hour === 0) {
@@ -17,13 +23,12 @@ export default class EventInfo {
}
if (minute < 10) {
- minute = `0${minute}`;
+ return `${hour}:0${minute} ${meridiem}`;
}
-
return `${hour}:${minute} ${meridiem}`;
}
- conflictsWith(event) {
+ conflictsWith(event: EventInfo) {
const daysConflict = event.days.match(new RegExp(`[${this.days}]`));
if (daysConflict) {
diff --git a/src/models/Lab.js b/src/models/Lab.ts
index 2e4412d..a6972ef 100644
--- a/src/models/Lab.js
+++ b/src/models/Lab.ts
@@ -1,6 +1,12 @@
import EventInfo from '@/models/EventInfo';
export default class Lab {
+ course: number;
+
+ section: number;
+
+ event: EventInfo;
+
constructor(course = 0, section = 0, event = new EventInfo()) {
this.course = course;
this.section = section;
diff --git a/src/models/PeerTeacher.js b/src/models/PeerTeacher.ts
index 00a2f0d..f387431 100644
--- a/src/models/PeerTeacher.js
+++ b/src/models/PeerTeacher.ts
@@ -1,4 +1,16 @@
+import EventInfo from './EventInfo';
+
export default class PeerTeacher {
+ firstname: string;
+
+ lastname: string;
+
+ uin: number;
+
+ events: EventInfo[];
+
+ assignedLabs: Set<string>;
+
constructor(firstname = '', lastname = '', uin = 0) {
this.firstname = firstname;
this.lastname = lastname;
@@ -7,7 +19,7 @@ export default class PeerTeacher {
this.assignedLabs = new Set();
}
- conflictsWith(event) {
+ conflictsWith(event: EventInfo) {
let conflicts = false;
this.events.every((item) => {
if (item.conflictsWith(event)) {