summaryrefslogtreecommitdiffstats
path: root/models/export.js
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2018-09-17 12:49:43 +0300
committerLauri Ojansivu <x@xet7.org>2018-09-17 12:49:43 +0300
commit5445955a774f6a9f29ee48109913ea3c4a9db33f (patch)
tree7b3bee4a7ce6d1053ca6ce0395c267f9ce3a45d8 /models/export.js
parent338e18870f937359c50c9be8b2a0fd96e0b4e141 (diff)
downloadwekan-5445955a774f6a9f29ee48109913ea3c4a9db33f.tar.gz
wekan-5445955a774f6a9f29ee48109913ea3c4a9db33f.tar.bz2
wekan-5445955a774f6a9f29ee48109913ea3c4a9db33f.zip
- Revert IFTTT.
Thanks to xet7 !
Diffstat (limited to 'models/export.js')
-rw-r--r--models/export.js74
1 files changed, 15 insertions, 59 deletions
diff --git a/models/export.js b/models/export.js
index 0911a631..6c0b43fd 100644
--- a/models/export.js
+++ b/models/export.js
@@ -14,7 +14,7 @@ if (Meteor.isServer) {
* See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/
* for detailed explanations
*/
- JsonRoutes.add('get', '/api/boards/:boardId/export', function(req, res) {
+ JsonRoutes.add('get', '/api/boards/:boardId/export', function (req, res) {
const boardId = req.params.boardId;
let user = null;
// todo XXX for real API, first look for token in Authentication: header
@@ -28,11 +28,8 @@ if (Meteor.isServer) {
}
const exporter = new Exporter(boardId);
- if (exporter.canExport(user)) {
- JsonRoutes.sendResult(res, {
- code: 200,
- data: exporter.build(),
- });
+ if(exporter.canExport(user)) {
+ JsonRoutes.sendResult(res, { code: 200, data: exporter.build() });
} else {
// we could send an explicit error message, but on the other hand the only
// way to get there is by hacking the UI so let's keep it raw.
@@ -50,49 +47,24 @@ class Exporter {
const byBoard = { boardId: this._boardId };
const byBoardNoLinked = { boardId: this._boardId, linkedId: '' };
// we do not want to retrieve boardId in related elements
- const noBoardId = {
- fields: {
- boardId: 0,
- },
- };
+ const noBoardId = { fields: { boardId: 0 } };
const result = {
_format: 'wekan-board-1.0.0',
};
- _.extend(result, Boards.findOne(this._boardId, {
- fields: {
- stars: 0,
- },
- }));
+ _.extend(result, Boards.findOne(this._boardId, { fields: { stars: 0 } }));
result.lists = Lists.find(byBoard, noBoardId).fetch();
result.cards = Cards.find(byBoardNoLinked, noBoardId).fetch();
result.swimlanes = Swimlanes.find(byBoard, noBoardId).fetch();
result.customFields = CustomFields.find(byBoard, noBoardId).fetch();
result.comments = CardComments.find(byBoard, noBoardId).fetch();
result.activities = Activities.find(byBoard, noBoardId).fetch();
- result.rules = Rules.find(byBoard, noBoardId).fetch();
result.checklists = [];
result.checklistItems = [];
result.subtaskItems = [];
- result.triggers = [];
- result.actions = [];
result.cards.forEach((card) => {
- result.checklists.push(...Checklists.find({
- cardId: card._id,
- }).fetch());
- result.checklistItems.push(...ChecklistItems.find({
- cardId: card._id,
- }).fetch());
- result.subtaskItems.push(...Cards.find({
- parentid: card._id,
- }).fetch());
- });
- result.rules.forEach((rule) => {
- result.triggers.push(...Triggers.find({
- _id: rule.triggerId,
- }, noBoardId).fetch());
- result.actions.push(...Actions.find({
- _id: rule.actionId,
- }, noBoardId).fetch());
+ result.checklists.push(...Checklists.find({ cardId: card._id }).fetch());
+ result.checklistItems.push(...ChecklistItems.find({ cardId: card._id }).fetch());
+ result.subtaskItems.push(...Cards.find({ parentid: card._id }).fetch());
});
// [Old] for attachments we only export IDs and absolute url to original doc
@@ -129,34 +101,18 @@ class Exporter {
// 1- only exports users that are linked somehow to that board
// 2- do not export any sensitive information
const users = {};
- result.members.forEach((member) => {
- users[member.userId] = true;
- });
- result.lists.forEach((list) => {
- users[list.userId] = true;
- });
+ result.members.forEach((member) => { users[member.userId] = true; });
+ result.lists.forEach((list) => { users[list.userId] = true; });
result.cards.forEach((card) => {
users[card.userId] = true;
if (card.members) {
- card.members.forEach((memberId) => {
- users[memberId] = true;
- });
+ card.members.forEach((memberId) => { users[memberId] = true; });
}
});
- result.comments.forEach((comment) => {
- users[comment.userId] = true;
- });
- result.activities.forEach((activity) => {
- users[activity.userId] = true;
- });
- result.checklists.forEach((checklist) => {
- users[checklist.userId] = true;
- });
- const byUserIds = {
- _id: {
- $in: Object.getOwnPropertyNames(users),
- },
- };
+ result.comments.forEach((comment) => { users[comment.userId] = true; });
+ result.activities.forEach((activity) => { users[activity.userId] = true; });
+ result.checklists.forEach((checklist) => { users[checklist.userId] = true; });
+ const byUserIds = { _id: { $in: Object.getOwnPropertyNames(users) } };
// we use whitelist to be sure we do not expose inadvertently
// some secret fields that gets added to User later.
const userFields = {