Просмотр исходного кода

Add attendees field to event objects

Matt Coles лет назад: 9
Родитель
Сommit
32cce8f1b4
2 измененных файлов с 80 добавлено и 32 удалено
  1. 29 0
      README.md
  2. 51 32
      presenters/event-controller.js

+ 29 - 0
README.md

370
         "id": "101898721",
370
         "id": "101898721",
371
         "name": "Super Mario Kart Party",
371
         "name": "Super Mario Kart Party",
372
         "organiser": "test1",
372
         "organiser": "test1",
373
+        "attendees": [],
373
         "location": "Marioland",
374
         "location": "Marioland",
374
         "society": "TestSociety",
375
         "society": "TestSociety",
375
         "start": "14605026110490",
376
         "start": "14605026110490",
401
         "end": "14605026110500",
402
         "end": "14605026110500",
402
         "details": "Play some Mario Kart with us",
403
         "details": "Play some Mario Kart with us",
403
         "organiser": "test1",
404
         "organiser": "test1",
405
+        "attendees": [
406
+            "test1",
407
+            "test2"
408
+        ],
404
         "id": "101898721"
409
         "id": "101898721"
405
     },
410
     },
406
     "error": 0
411
     "error": 0
429
             "end": "14605026110500",
434
             "end": "14605026110500",
430
             "details": "Play some Mario Kart with us",
435
             "details": "Play some Mario Kart with us",
431
             "organiser": "test1",
436
             "organiser": "test1",
437
+            "attendees": [
438
+                "test1",
439
+                "test2"
440
+            ],
432
             "id": "851133039"
441
             "id": "851133039"
433
         },
442
         },
434
         {
443
         {
439
             "end": "14605026110500",
448
             "end": "14605026110500",
440
             "details": "Play some Mario Kart with us",
449
             "details": "Play some Mario Kart with us",
441
             "organiser": "test1",
450
             "organiser": "test1",
451
+            "attendees": [
452
+                "test1",
453
+                "test2"
454
+            ],
442
             "id": "838450388"
455
             "id": "838450388"
443
         },
456
         },
444
         { ... }
457
         { ... }
469
             "end": "14605026110500",
482
             "end": "14605026110500",
470
             "details": "Play some Mario Kart with us",
483
             "details": "Play some Mario Kart with us",
471
             "organiser": "test1",
484
             "organiser": "test1",
485
+            "attendees": [
486
+                "test1",
487
+                "test2"
488
+            ],
472
             "id": "851133039"
489
             "id": "851133039"
473
         },
490
         },
474
         {
491
         {
479
             "end": "14605026110500",
496
             "end": "14605026110500",
480
             "details": "Play some Mario Kart with us",
497
             "details": "Play some Mario Kart with us",
481
             "organiser": "test1",
498
             "organiser": "test1",
499
+            "attendees": [
500
+                "test1",
501
+                "test2"
502
+            ],
482
             "id": "838450388"
503
             "id": "838450388"
483
         },
504
         },
484
         { ... }
505
         { ... }
509
             "end": "14605026110500",
530
             "end": "14605026110500",
510
             "details": "Play some Mario Kart with us",
531
             "details": "Play some Mario Kart with us",
511
             "organiser": "test1",
532
             "organiser": "test1",
533
+            "attendees": [
534
+                "test1",
535
+                "test2"
536
+            ],
512
             "id": "851133039"
537
             "id": "851133039"
513
         },
538
         },
514
         {
539
         {
519
             "end": "14605026110500",
544
             "end": "14605026110500",
520
             "details": "Play some Mario Kart with us",
545
             "details": "Play some Mario Kart with us",
521
             "organiser": "test1",
546
             "organiser": "test1",
547
+            "attendees": [
548
+                "test1",
549
+                "test2"
550
+            ],
522
             "id": "838450388"
551
             "id": "838450388"
523
         },
552
         },
524
         { ... }
553
         { ... }

+ 51 - 32
presenters/event-controller.js

22
               redis.hset(event_query, "end", event.end);
22
               redis.hset(event_query, "end", event.end);
23
               redis.hset(event_query, "details", event.details);
23
               redis.hset(event_query, "details", event.details);
24
               redis.hset(event_query, "organiser", organiser);
24
               redis.hset(event_query, "organiser", organiser);
25
+              redis.hset(event_query, "attendees", JSON.stringify([]));
25
               redis.hset(event_query, "id", event_id);
26
               redis.hset(event_query, "id", event_id);
26
               redis.hget(soc_query, "events", function (err, events) {
27
               redis.hget(soc_query, "events", function (err, events) {
27
                 redis.hset(soc_query, "events", JSON.stringify(JSON.parse(events).concat(event_id)));
28
                 redis.hset(soc_query, "events", JSON.stringify(JSON.parse(events).concat(event_id)));
32
                   "id": event_id,
33
                   "id": event_id,
33
                   "name": event.name,
34
                   "name": event.name,
34
                   "organiser": organiser,
35
                   "organiser": organiser,
36
+                  "attendees": [],
35
                   "location": event.location,
37
                   "location": event.location,
36
                   "society": soc_name,
38
                   "society": soc_name,
37
                   "start": event.start,
39
                   "start": event.start,
57
     });
59
     });
58
   },
60
   },
59
 
61
 
62
+  cancel_event: function (event_id, auth, complete, force) {
63
+
64
+  },
65
+
60
   invite_all: function (soc_name, event_id) {
66
   invite_all: function (soc_name, event_id) {
61
     society_controller.get_society(soc_name, function (response) {
67
     society_controller.get_society(soc_name, function (response) {
62
       response.society.users.map(function (user) {
68
       response.society.users.map(function (user) {
69
 
75
 
70
   get_event: function (event_id, auth, complete, preauth) {
76
   get_event: function (event_id, auth, complete, preauth) {
71
     redis.hgetall("event:" + event_id, function (err, event) {
77
     redis.hgetall("event:" + event_id, function (err, event) {
78
+      event.attendees = JSON.parse(event.attendees);
72
       if (preauth) {
79
       if (preauth) {
73
         complete({
80
         complete({
74
           "event": event,
81
           "event": event,
138
   },
145
   },
139
 
146
 
140
   accept_event: function (event_id, auth, complete) {
147
   accept_event: function (event_id, auth, complete) {
148
+    var self = this;
141
     user_controller.get_user_from_auth(auth, function (username) {
149
     user_controller.get_user_from_auth(auth, function (username) {
142
       if (username) {
150
       if (username) {
143
         user_controller.get_raw_user(username, function (userdata) {
151
         user_controller.get_raw_user(username, function (userdata) {
144
           var pending_events = JSON.parse(userdata.pending_events);
152
           var pending_events = JSON.parse(userdata.pending_events);
145
           var declined_events = JSON.parse(userdata.declined_events);
153
           var declined_events = JSON.parse(userdata.declined_events);
146
           var accepted_events = JSON.parse(userdata.accepted_events);
154
           var accepted_events = JSON.parse(userdata.accepted_events);
147
-          if (pending_events.indexOf(event_id) > -1) {
148
-            pending_events.splice(pending_events.indexOf(event_id), 1);
149
-            accepted_events.push(event_id);
150
-            redis.hset("user:" + username, "pending_events", JSON.stringify(pending_events));
151
-            redis.hset("user:" + username, "accepted_events", JSON.stringify(accepted_events));
152
-            complete({
153
-              "success": 1,
154
-              "error": 0
155
-            });
156
-          } else if (declined_events.indexOf(event_id) > -1) {
157
-            declined_events.splice(declined_events.indexOf(event_id), 1);
158
-            accepted_events.push(event_id);
159
-            redis.hset("user:" + username, "declined_events", JSON.stringify(declined_events));
160
-            redis.hset("user:" + username, "accepted_events", JSON.stringify(accepted_events));
161
-            complete({
162
-              "success": 1,
163
-              "error": 0
164
-            });
165
-          } else {
166
-            complete({
167
-              "success": 0,
168
-              "error": 2
169
-            });
170
-          }
155
+          self.get_event(event_id, auth, function (data) {
156
+            var attendees = data.event.attendees;
157
+            if (pending_events.indexOf(event_id) > -1) {
158
+              pending_events.splice(pending_events.indexOf(event_id), 1);
159
+              accepted_events.push(event_id);
160
+              redis.hset("user:" + username, "pending_events", JSON.stringify(pending_events));
161
+              redis.hset("user:" + username, "accepted_events", JSON.stringify(accepted_events));
162
+              redis.hset("event:" + event_id, "attendees", JSON.stringify(attendees.concat(username.toLowerCase())));
163
+              complete({
164
+                "success": 1,
165
+                "error": 0
166
+              });
167
+            } else if (declined_events.indexOf(event_id) > -1) {
168
+              declined_events.splice(declined_events.indexOf(event_id), 1);
169
+              accepted_events.push(event_id);
170
+              redis.hset("user:" + username, "declined_events", JSON.stringify(declined_events));
171
+              redis.hset("user:" + username, "accepted_events", JSON.stringify(accepted_events));
172
+              redis.hset("event:" + event_id, "attendees", JSON.stringify(attendees.concat(username.toLowerCase())));
173
+              complete({
174
+                "success": 1,
175
+                "error": 0
176
+              });
177
+            } else {
178
+              complete({
179
+                "success": 0,
180
+                "error": 2
181
+              });
182
+            }
183
+          });
171
         });
184
         });
172
       } else {
185
       } else {
173
         complete({
186
         complete({
179
   },
192
   },
180
 
193
 
181
   decline_event: function (event_id, auth, complete) {
194
   decline_event: function (event_id, auth, complete) {
195
+    var self = this;
182
     user_controller.get_user_from_auth(auth, function (username) {
196
     user_controller.get_user_from_auth(auth, function (username) {
183
       if (username) {
197
       if (username) {
184
         user_controller.get_raw_user(username, function (userdata) {
198
         user_controller.get_raw_user(username, function (userdata) {
195
               "error": 0
209
               "error": 0
196
             });
210
             });
197
           } else if (accepted_events.indexOf(event_id) > -1) {
211
           } else if (accepted_events.indexOf(event_id) > -1) {
198
-            accepted_events.splice(accepted_events.indexOf(event_id), 1);
199
-            declined_events.push(event_id);
200
-            redis.hset("user:" + username, "accepted_events", JSON.stringify(accepted_events));
201
-            redis.hset("user:" + username, "declined_events", JSON.stringify(declined_events));
202
-            complete({
203
-              "success": 1,
204
-              "error": 0
205
-            });
212
+            self.get_event(event_id, auth, function (data) {
213
+              var attendees = data.event.attendees;
214
+              attendees.splice(attendees.indexOf(event_id), 1);
215
+              accepted_events.splice(accepted_events.indexOf(event_id), 1);
216
+              declined_events.push(event_id);
217
+              redis.hset("user:" + username, "accepted_events", JSON.stringify(accepted_events));
218
+              redis.hset("user:" + username, "declined_events", JSON.stringify(declined_events));
219
+              redis.hset("event:" + event_id, "attendees", JSON.stringify(attendees));
220
+              complete({
221
+                "success": 1,
222
+                "error": 0
223
+              });
224
+            })
206
           } else {
225
           } else {
207
             complete({
226
             complete({
208
               "success": 0,
227
               "success": 0,