aboutsummaryrefslogtreecommitdiff
path: root/src/models/EventInfo.js
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-04-10 21:35:13 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-04-10 21:35:13 -0500
commit74e6cc31e83ad570a9f06765d288e9024736e73f (patch)
treea9757e9ffa099a3d3be5786d20d623e2ce933855 /src/models/EventInfo.js
parentea8dcfe3bf1ebe84ac483bb91e37ee4faa0d77ea (diff)
Commit MVP
Diffstat (limited to 'src/models/EventInfo.js')
-rw-r--r--src/models/EventInfo.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/models/EventInfo.js b/src/models/EventInfo.js
new file mode 100644
index 0000000..c1624a8
--- /dev/null
+++ b/src/models/EventInfo.js
@@ -0,0 +1,41 @@
+export default class EventInfo {
+ constructor(days = '', start = 0, end = 0) {
+ this.days = days;
+ this.start = start;
+ this.end = end;
+ }
+
+ static timeToStr(time) {
+ let hour = Math.floor(time / 100);
+ let minute = time % 100;
+ const meridiem = (hour < 12) ? 'AM' : 'PM';
+
+ if (hour === 0) {
+ hour = 12;
+ } else if (hour > 12) {
+ hour -= 12;
+ }
+
+ if (minute < 10) {
+ minute = `0${minute}`;
+ }
+
+ return `${hour}:${minute} ${meridiem}`;
+ }
+
+ conflictsWith(event) {
+ const daysConflict = event.days.match(new RegExp(`[${this.days}]`));
+
+ if (daysConflict) {
+ return (this.start <= event.end) && (event.start <= this.end);
+ }
+ return false;
+ }
+
+ get info() {
+ if (this.days === '') {
+ return 'ONLINE';
+ }
+ return `${this.days} ${EventInfo.timeToStr(this.start)}-${EventInfo.timeToStr(this.end)}`;
+ }
+}