Browse Source

Add a new API route to create a new label in a given board

NET\faguet 7 years ago
parent
commit
1cb8a6e7fe
1 changed files with 29 additions and 0 deletions
  1. 29 0
      models/boards.js

+ 29 - 0
models/boards.js

@@ -719,4 +719,33 @@ if (Meteor.isServer) {
       });
     }
   });
+
+  JsonRoutes.add('PUT', '/api/boards/:id/labels', function (req, res) {
+    Authentication.checkUserId(req.userId);
+    const id = req.params.id;
+    try {
+      if (req.body.hasOwnProperty('label')) {
+        const board = Boards.findOne({ _id: id });
+        const color = req.body.label.color;
+        const name = req.body.label.name;
+        const labelId = Random.id(6);
+        if (!board.getLabel(name, color)) {
+          Boards.direct.update({ _id: id }, { $push: { labels: { "_id": labelId, "name": name, "color": color } } });
+          JsonRoutes.sendResult(res, {
+            code: 200,
+            data: labelId,
+          });
+        } else {
+          JsonRoutes.sendResult(res, {
+            code: 200,
+          });
+        }
+      }
+    }
+    catch (error) {
+      JsonRoutes.sendResult(res, {
+        data: error,
+      });
+    }
+  });
 }