import.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { TrelloCreator } from './trelloCreator';
  2. import { WekanCreator } from './wekanCreator';
  3. import {Exporter} from './export';
  4. import wekanMembersMapper from './wekanmapper';
  5. Meteor.methods({
  6. importBoard(board, data, importSource, currentBoard) {
  7. check(board, Object);
  8. check(data, Object);
  9. check(importSource, String);
  10. check(currentBoard, Match.Maybe(String));
  11. let creator;
  12. switch (importSource) {
  13. case 'trello':
  14. creator = new TrelloCreator(data);
  15. break;
  16. case 'wekan':
  17. creator = new WekanCreator(data);
  18. break;
  19. }
  20. // 1. check all parameters are ok from a syntax point of view
  21. //creator.check(board);
  22. // 2. check parameters are ok from a business point of view (exist &
  23. // authorized) nothing to check, everyone can import boards in their account
  24. // 3. create all elements
  25. return creator.create(board, currentBoard);
  26. },
  27. });
  28. Meteor.methods({
  29. cloneBoard(sourceBoardId, currentBoardId) {
  30. check(sourceBoardId, String);
  31. check(currentBoardId, Match.Maybe(String));
  32. const exporter = new Exporter(sourceBoardId);
  33. const data = exporter.build();
  34. const addData = {};
  35. addData.membersMapping = wekanMembersMapper.getMembersToMap(data);
  36. const creator = new WekanCreator(addData);
  37. data.title = `${data.title } - ${ TAPi18n.__('copy-tag')}`;
  38. return creator.create(data, currentBoardId);
  39. },
  40. });