import.js 1.6 KB

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