Ver código fonte

Add route for editing events

Matt Coles 9 anos atrás
pai
commit
803589139f
3 arquivos alterados com 96 adições e 0 exclusões
  1. 59 0
      presenters/event-controller.js
  2. 35 0
      routes/events/edit-event.js
  3. 2 0
      utils/route-manager.js

+ 59 - 0
presenters/event-controller.js

@@ -62,6 +62,65 @@ module.exports = {
62 62
     });
63 63
   },
64 64
 
65
+  edit_event: function (event_id, name, location, start, end, details, auth, complete) {
66
+    var self = this;
67
+    self.get_event(event_id, "", function (response) {
68
+      if (response.event.id) {
69
+        var event = response.event;
70
+        permissions_controller.user_can_manage_soc_events(auth, event.society, function (manageable) {
71
+          if (manageable) {
72
+            var success = true;
73
+            if (name) {
74
+              redis.hset("event:" + event_id, "name", name);
75
+            }
76
+            if (location) {
77
+              redis.hset("event:" + event_id, "location", location);
78
+            }
79
+            if (start) {
80
+              if (start > Date.now()) {
81
+                redis.hset("event:" + event_id, "start", start);
82
+              } else {
83
+                success = false;
84
+                complete({
85
+                  "success": 0,
86
+                  "error": 3
87
+                });
88
+              }
89
+            }
90
+            if (end) {
91
+              if (end > event.end && end > Date.now()) {
92
+                redis.hset("event:" + event_id, "end", end);
93
+              } else {
94
+                success = false;
95
+                complete({
96
+                  "success": 0,
97
+                  "error": 3
98
+                });
99
+              }
100
+            }
101
+            if (details) {
102
+              redis.hset("event:" + event_id, "details", details);
103
+            }
104
+            complete({
105
+              "success": 1,
106
+              "error": 0
107
+            });
108
+          } else {
109
+            complete({
110
+              "success": 0,
111
+              "error": 1
112
+            });
113
+          }
114
+        });
115
+      } else {
116
+        complete({
117
+          "success": 0,
118
+          "error": 2
119
+        });
120
+      }
121
+    }, true);
122
+  },
123
+
65 124
   cancel_event: function (event_id, auth, complete, force) {
66 125
     var self = this;
67 126
     self.get_event(event_id, auth, function (response) {

+ 35 - 0
routes/events/edit-event.js

@@ -0,0 +1,35 @@
1
+var event_controller = require("./../../presenters/event-controller.js");
2
+
3
+module.exports = {
4
+  perform: function (a,b) {
5
+    perform(a,b);
6
+  }
7
+}
8
+
9
+var perform = function (req, res) {
10
+  var event_id = req.params.eventid;
11
+  var new_name = req.body.name || req.query.name || "";
12
+  var new_loc = req.body.location || req.query.location || "";
13
+  var new_start = req.body.start || req.query.start || "";
14
+  var new_end = req.body.end || req.query.end || "";
15
+  var new_details = req.body.details || req.query.details || "";
16
+  var auth_key = req.body.auth || req.query.auth;
17
+
18
+  if (event_id && auth_key && (new_name || new_loc || new_start || new_end || new_details)) {
19
+    if (new_name) decodeURIComponent(new_name);
20
+    if (new_loc) decodeURIComponent(new_loc);
21
+    if (new_start) decodeURIComponent(new_start);
22
+    if (new_end) decodeURIComponent(new_end);
23
+    if (new_details) decodeURIComponent(new_details);
24
+    if (auth_key) decodeURIComponent(auth_key);
25
+    event_controller.edit_event(event_id, new_name, new_loc, new_start, new_end, new_details, auth_key, function (response) {
26
+      res.send(response);
27
+    });
28
+  } else {
29
+    res.send({
30
+      "success": 0,
31
+      "error": 4
32
+    });
33
+  }
34
+
35
+};

+ 2 - 0
utils/route-manager.js

@@ -19,6 +19,7 @@ var event_declined = require("../routes/events/view-declined-events.js");
19 19
 var event_accept = require("../routes/events/accept-event.js");
20 20
 var event_decline = require("../routes/events/decline-event.js");
21 21
 var event_cancel = require("../routes/events/cancel-event.js");
22
+var event_edit = require("../routes/events/edit-event.js");
22 23
 var friend_add = require("../routes/friends/add-friend.js");
23 24
 var friend_remove = require("../routes/friends/remove-friend.js");
24 25
 
@@ -39,6 +40,7 @@ router.all('/society/promote/', soc_promote.perform);
39 40
 router.all('/society/kick/', soc_kick.perform);
40 41
 
41 42
 router.all('/events/create/', event_create.perform);
43
+router.all('/events/edit/:eventid', event_edit.perform);
42 44
 router.all('/events/view/:eventid', event_view.perform);
43 45
 router.all('/events/pending/', event_pending.perform);
44 46
 router.all('/events/accepted/', event_accepted.perform);