summaryrefslogtreecommitdiffstats
path: root/models/cards.js
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2017-04-27 20:49:24 +0300
committerLauri Ojansivu <x@xet7.org>2017-04-27 20:49:24 +0300
commit0319bcf7bb090328e67766234723f5986c00bba2 (patch)
treed81ecf4ccc1bd77899ba2cbcb253d46e95f6b76a /models/cards.js
parenta99218e2c7f210adc9eef83f6474395f8c52c84e (diff)
downloadwekan-0319bcf7bb090328e67766234723f5986c00bba2.tar.gz
wekan-0319bcf7bb090328e67766234723f5986c00bba2.tar.bz2
wekan-0319bcf7bb090328e67766234723f5986c00bba2.zip
REST API - Meteor 1.4 - first step issue
Diffstat (limited to 'models/cards.js')
-rw-r--r--models/cards.js98
1 files changed, 79 insertions, 19 deletions
diff --git a/models/cards.js b/models/cards.js
index 922fbecd..2d585825 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -123,15 +123,15 @@ Cards.helpers({
},
activities() {
- return Activities.find({ cardId: this._id }, { sort: { createdAt: -1 }});
+ return Activities.find({ cardId: this._id }, { sort: { createdAt: -1 } });
},
comments() {
- return CardComments.find({ cardId: this._id }, { sort: { createdAt: -1 }});
+ return CardComments.find({ cardId: this._id }, { sort: { createdAt: -1 } });
},
attachments() {
- return Attachments.find({ cardId: this._id }, { sort: { uploadedAt: -1 }});
+ return Attachments.find({ cardId: this._id }, { sort: { uploadedAt: -1 } });
},
cover() {
@@ -142,7 +142,7 @@ Cards.helpers({
},
checklists() {
- return Checklists.find({ cardId: this._id }, { sort: { createdAt: 1 }});
+ return Checklists.find({ cardId: this._id }, { sort: { createdAt: 1 } });
},
checklistItemCount() {
@@ -183,19 +183,19 @@ Cards.helpers({
Cards.mutations({
archive() {
- return { $set: { archived: true }};
+ return { $set: { archived: true } };
},
restore() {
- return { $set: { archived: false }};
+ return { $set: { archived: false } };
},
setTitle(title) {
- return { $set: { title }};
+ return { $set: { title } };
},
setDescription(description) {
- return { $set: { description }};
+ return { $set: { description } };
},
move(listId, sortIndex) {
@@ -207,11 +207,11 @@ Cards.mutations({
},
addLabel(labelId) {
- return { $addToSet: { labelIds: labelId }};
+ return { $addToSet: { labelIds: labelId } };
},
removeLabel(labelId) {
- return { $pull: { labelIds: labelId }};
+ return { $pull: { labelIds: labelId } };
},
toggleLabel(labelId) {
@@ -223,11 +223,11 @@ Cards.mutations({
},
assignMember(memberId) {
- return { $addToSet: { members: memberId }};
+ return { $addToSet: { members: memberId } };
},
unassignMember(memberId) {
- return { $pull: { members: memberId }};
+ return { $pull: { members: memberId } };
},
toggleMember(memberId) {
@@ -239,27 +239,27 @@ Cards.mutations({
},
setCover(coverId) {
- return { $set: { coverId }};
+ return { $set: { coverId } };
},
unsetCover() {
- return { $unset: { coverId: '' }};
+ return { $unset: { coverId: '' } };
},
setStart(startAt) {
- return { $set: { startAt }};
+ return { $set: { startAt } };
},
unsetStart() {
- return { $unset: { startAt: '' }};
+ return { $unset: { startAt: '' } };
},
setDue(dueAt) {
- return { $set: { dueAt }};
+ return { $set: { dueAt } };
},
unsetDue() {
- return { $unset: { dueAt: '' }};
+ return { $unset: { dueAt: '' } };
},
});
@@ -304,7 +304,7 @@ if (Meteor.isServer) {
});
// New activity for card moves
- Cards.after.update(function(userId, doc, fieldNames) {
+ Cards.after.update(function (userId, doc, fieldNames) {
const oldListId = this.previous.listId;
if (_.contains(fieldNames, 'listId') && doc.listId !== oldListId) {
Activities.insert({
@@ -370,3 +370,63 @@ if (Meteor.isServer) {
});
});
}
+//LISTS REST API
+if (Meteor.isServer) {
+ JsonRoutes.add('GET', '/api/boards/:boardId/lists/:listId/cards', function (req, res, next) {
+ const paramBoardId = req.params.boardId;
+ const paramListId = req.params.listId;
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: Cards.find({ boardId: paramBoardId, listId: paramListId, archived: false }).map(function (doc) {
+ return {
+ _id: doc._id,
+ title: doc.title,
+ description: doc.description,
+ };
+ }),
+ });
+ });
+
+ JsonRoutes.add('GET', '/api/boards/:boardId/lists/:listId/cards/:cardId', function (req, res, next) {
+ const paramBoardId = req.params.boardId;
+ const paramListId = req.params.listId;
+ const paramCardId = req.params.cardId;
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: Cards.findOne({ _id: paramCardId, listId: paramListId, boardId: paramBoardId, archived: false }),
+ });
+ });
+
+ JsonRoutes.add('POST', '/api/boards/:boardId/lists/:listId/cards', function (req, res, next) {
+ const paramBoardId = req.params.boardId;
+ const paramListId = req.params.listId;
+ const id = Cards.insert({
+ title: req.body.title,
+ boardId: paramBoardId,
+ listId: paramListId,
+ description: req.body.description,
+ userId : req.body.authorId,
+ sort: 0,
+ members:[ req.body.authorId ],
+ });
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: {
+ _id: id,
+ },
+ });
+ });
+
+ JsonRoutes.add('DELETE', '/api/boards/:boardId/lists/:listId/cards/:cardId', function (req, res, next) {
+ const paramBoardId = req.params.boardId;
+ const paramListId = req.params.listId;
+ const paramCardId = req.params.cardId;
+ Cards.remove({ _id: paramCardId, listId: paramListId, boardId: paramBoardId });
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: {
+ _id: paramCardId,
+ },
+ });
+ });
+}