summaryrefslogtreecommitdiffstats
path: root/models/import.js
diff options
context:
space:
mode:
authorXavier Priour <xavier.priour@bubblyware.com>2015-11-13 19:17:09 +0100
committerXavier Priour <xavier.priour@bubblyware.com>2015-11-14 01:41:02 +0100
commitdd0a6e1a8223cbb80ea940985dc9706d468ed72c (patch)
tree61f1a68933f9806853244e1599f67a917eb58352 /models/import.js
parentf6f41270de1b5a2d3ff6aa4ca7d433915dd29bd9 (diff)
downloadwekan-dd0a6e1a8223cbb80ea940985dc9706d468ed72c.tar.gz
wekan-dd0a6e1a8223cbb80ea940985dc9706d468ed72c.tar.bz2
wekan-dd0a6e1a8223cbb80ea940985dc9706d468ed72c.zip
Import members: board import
Diffstat (limited to 'models/import.js')
-rw-r--r--models/import.js35
1 files changed, 30 insertions, 5 deletions
diff --git a/models/import.js b/models/import.js
index ab23f0a9..f4e93d5d 100644
--- a/models/import.js
+++ b/models/import.js
@@ -92,6 +92,24 @@ class TrelloCreator {
stars: 0,
title: trelloBoard.name,
};
+ // now add other members
+ if(trelloBoard.memberships) {
+ trelloBoard.memberships.forEach((trelloMembership) => {
+ const trelloId = trelloMembership.idMember;
+ // do we have a mapping?
+ if(this.members[trelloId]) {
+ const wekanId = this.members[trelloId];
+ // do we already have it in our list?
+ if(!boardToCreate.members.find((wekanMember) => {return (wekanMember.userId === wekanId);})) {
+ boardToCreate.members.push({
+ userId: wekanId,
+ isAdmin: false,
+ isActive: true,
+ });
+ }
+ }
+ });
+ }
trelloBoard.labels.forEach((label) => {
const labelToCreate = {
_id: Random.id(6),
@@ -197,10 +215,16 @@ class TrelloCreator {
if(card.idMembers) {
const wekanMembers = [];
// we can't just map, as some members may not have been mapped
- card.idMembers.forEach((id) => {
- if(this.members[id]) {
- wekanMembers.push(this.members[id]);
+ card.idMembers.forEach((trelloId) => {
+ if(this.members[trelloId]) {
+ const wekanId = this.members[trelloId];
+ // we may map multiple Trello members to the same wekan user
+ // in which case we risk adding the same user multiple times
+ if(!wekanMembers.find((wId) => {return (wId === wekanId);})){
+ wekanMembers.push(wekanId);
+ }
}
+ return true;
});
if(wekanMembers.length>0) {
cardToCreate.members = wekanMembers;
@@ -317,8 +341,9 @@ Meteor.methods({
// 1. check all parameters are ok from a syntax point of view
try {
- // we don't use additional data - this should be an empty object
- check(data, {});
+ check(data, {
+ membersMapping: Match.Optional(Object),
+ });
trelloCreator.checkActions(trelloBoard.actions);
trelloCreator.checkBoard(trelloBoard);
trelloCreator.checkLabels(trelloBoard.labels);