diff --git a/client/templates/meetingseries/helpers/tabFilterDatabaseOperations.js b/client/templates/meetingseries/helpers/tabFilterDatabaseOperations.js index 28afeaabc..f72d726e0 100644 --- a/client/templates/meetingseries/helpers/tabFilterDatabaseOperations.js +++ b/client/templates/meetingseries/helpers/tabFilterDatabaseOperations.js @@ -1,34 +1,30 @@ import { Label } from "/imports/label"; import { Meteor } from "meteor/meteor"; -module.exports = { - createLabelIdsReceiver(parentMeetingSeriesId) { - return function getLabelIdsByName(labelName, caseSensitive) { - const label = Label.findLabelsContainingSubstring( - parentMeetingSeriesId, - labelName, - caseSensitive, - ); - if (label !== null) { - return label.map((label) => { - return label._id; - }); - } - return null; - }; - }, - - createUserIdsReceiver(userName) { - const users = - userName === "me" - ? [Meteor.user()] - : Meteor.users.find({ username: { $regex: userName } }).fetch(); - if (users) { - return users.map((user) => { - return user._id; +export function createLabelIdsReceiver(parentMeetingSeriesId) { + return function getLabelIdsByName(labelName, caseSensitive) { + const label = Label.findLabelsContainingSubstring( + parentMeetingSeriesId, + labelName, + caseSensitive + ); + if (label !== null) { + return label.map((label) => { + return label._id; }); } + return null; + }; +} +export function createUserIdsReceiver(userName) { + const users = userName === "me" + ? [Meteor.user()] + : Meteor.users.find({ username: { $regex: userName } }).fetch(); + if (users) { + return users.map((user) => { + return user._id; + }); + } - return []; - }, -}; + return []; +} diff --git a/private/exportMeetingSeries.js b/private/exportMeetingSeries.js index 6f647c075..cf1926ad6 100644 --- a/private/exportMeetingSeries.js +++ b/private/exportMeetingSeries.js @@ -4,29 +4,30 @@ mongodb://localhost:3101/meteor --id icwrCdJjqWpoH9ugQ */ -const mongo = require("mongodb").MongoClient; -const ExpImpSchema = require("../imports/server/exportimport/expImpSchema"); -const ExpImpMeetingSeries = require("../imports/server/exportimport/expImpMeetingseries"); -const ExpImpMinutes = require("../imports/server/exportimport/expImpMinutes"); -const ExpImpTopics = require("../imports/server/exportimport/expImpTopics"); -const ExpImpFileAttachments = require("../imports/server/exportimport/expImpFilesAttachments"); -const ExpImpFileDocuments = require("../imports/server/exportimport/expImpFilesDocuments"); -const ExpImpUsers = require("../imports/server/exportimport/expImpUsers"); +import { MongoClient as mongo } from "mongodb"; +import { MADE_FOR_SCHEMA, exportCheck } from "../imports/server/exportimport/expImpSchema"; +import { doExport } from "../imports/server/exportimport/expImpMeetingseries"; +import { doExport as _doExport } from "../imports/server/exportimport/expImpMinutes"; +import { doExport as __doExport } from "../imports/server/exportimport/expImpTopics"; +import { doExport as ___doExport } from "../imports/server/exportimport/expImpFilesAttachments"; +import { doExport as ____doExport } from "../imports/server/exportimport/expImpFilesDocuments"; +import { doExport as _____doExport } from "../imports/server/exportimport/expImpUsers"; -const optionParser = require("node-getopt").create([ +import { create, bindHelp, showHelp } from "node-getopt"; +create([ ["i", "id=[ARG]", "ID of meeting series, e.g. icwrCdJjqWpoH9ugQ"], ["m", "mongourl=[ARG]", "Mongo DB url, e.g. mongodb://localhost:3101/meteor"], ["h", "help", "Display this help"], ]); -const arg = optionParser.bindHelp().parseSystem(); +const arg = bindHelp().parseSystem(); const mongoUrl = arg.options.mongourl || process.env.MONGO_URL; const meetingseriesID = arg.options.id; if (!meetingseriesID) { - optionParser.showHelp(); + showHelp(); throw new Error("No --id set for meeting series"); } if (!mongoUrl) { - optionParser.showHelp(); + showHelp(); throw new Error("No --mongourl parameter or MONGO_URL in env"); } const _connectMongo = function (mongoUrl) { @@ -42,29 +43,29 @@ const _connectMongo = function (mongoUrl) { console.log(""); console.log( - `*** 4Minitz MeetingSeries Export Tool *** (made for schema version: ${ExpImpSchema.MADE_FOR_SCHEMA})`, + `*** 4Minitz MeetingSeries Export Tool *** (made for schema version: ${MADE_FOR_SCHEMA})`, ); _connectMongo(mongoUrl) .then((db) => { - return ExpImpSchema.exportCheck(db, meetingseriesID); + return exportCheck(db, meetingseriesID); }) .then((db) => { - return ExpImpMeetingSeries.doExport(db, meetingseriesID); + return doExport(db, meetingseriesID); }) .then(({ db, userIDs }) => { - return ExpImpMinutes.doExport(db, meetingseriesID, userIDs); + return _doExport(db, meetingseriesID, userIDs); }) .then(({ db, userIDs }) => { - return ExpImpTopics.doExport(db, meetingseriesID, userIDs); + return __doExport(db, meetingseriesID, userIDs); }) .then(({ db, userIDs }) => { - return ExpImpFileAttachments.doExport(db, meetingseriesID, userIDs); + return ___doExport(db, meetingseriesID, userIDs); }) .then(({ db, userIDs }) => { - return ExpImpFileDocuments.doExport(db, meetingseriesID, userIDs); + return ____doExport(db, meetingseriesID, userIDs); }) .then(({ db, userIDs }) => { - return ExpImpUsers.doExport(db, meetingseriesID, userIDs); + return _____doExport(db, meetingseriesID, userIDs); }) .then((db) => db.close()) .catch((error) => { diff --git a/private/importMeetingSeries.js b/private/importMeetingSeries.js index c107d632d..d15667542 100644 --- a/private/importMeetingSeries.js +++ b/private/importMeetingSeries.js @@ -4,31 +4,32 @@ mongodb://localhost:3101/meteor --id icwrCdJjqWpoH9ugQ */ +import { spawnSync } from "child_process"; import { MongoClient as mongo } from "mongodb"; +import { bindHelp, create, showHelp } from "node-getopt"; +import { ExpImpFileAttachments } from "../imports/server/exportimport/expImpFilesAttachments"; +import { ExpImpFileDocuments } from "../imports/server/exportimport/expImpFilesDocuments"; +import { ExpImpMeetingSeries } from "../imports/server/exportimport/expImpMeetingseries"; +import { ExpImpMinutes } from "../imports/server/exportimport/expImpMinutes"; +import { ExpImpSchema } from "../imports/server/exportimport/expImpSchema"; +import { ExpImpTopics } from "../imports/server/exportimport/expImpTopics"; +import { ExpImpUsers } from "../imports/server/exportimport/expImpUsers"; -import ExpImpFileAttachments from "../imports/server/exportimport/expImpFilesAttachments"; -import ExpImpFileDocuments from "../imports/server/exportimport/expImpFilesDocuments"; -import ExpImpMeetingSeries from "../imports/server/exportimport/expImpMeetingseries"; -import ExpImpMinutes from "../imports/server/exportimport/expImpMinutes"; -import ExpImpSchema from "../imports/server/exportimport/expImpSchema"; -import ExpImpTopics from "../imports/server/exportimport/expImpTopics"; -import ExpImpUsers from "../imports/server/exportimport/expImpUsers"; - -const optionParser = require("node-getopt").create([ +create([ ["i", "id=[ARG]", "ID of meeting series, e.g. icwrCdJjqWpoH9ugQ"], ["m", "mongourl=[ARG]", "Mongo DB url, e.g. mongodb://localhost:3101/meteor"], ["f", "force", "Force import even if schema mismatch"], ["h", "help", "Display this help"], ]); -const arg = optionParser.bindHelp().parseSystem(); +const arg = bindHelp().parseSystem(); const mongoUrl = arg.options.mongourl || process.env.MONGO_URL; const meetingseriesID = arg.options.id; if (!meetingseriesID) { - optionParser.showHelp(); + showHelp(); throw new Error("No --id set for meeting series"); } if (!mongoUrl) { - optionParser.showHelp(); + showHelp(); throw new Error("No --mongourl parameter or MONGO_URL in env"); } const _connectMongo = (mongoUrl) => @@ -44,17 +45,17 @@ const _connectMongo = (mongoUrl) => console.log(""); console.log( - `*** 4Minitz MeetingSeries Import Tool *** (made for schema version: ${ExpImpSchema.MADE_FOR_SCHEMA})`, + `*** 4Minitz MeetingSeries Import Tool *** (made for schema version: ${ExpImpSchema.MADE_FOR_SCHEMA})` ); console.log("*** ATTENTION ***"); console.log( - "- This script will import a meeting series and all dependecies to your DB.", + "- This script will import a meeting series and all dependecies to your DB." ); console.log( - "- This script has to change existing user roles, so users can access the new data.", + "- This script has to change existing user roles, so users can access the new data." ); console.log( - "- This script may overwrite edited data if you import the same data multiple times.", + "- This script may overwrite edited data if you import the same data multiple times." ); console.log("So, this script is DANGEROUS!!!"); console.log("Experts only!"); @@ -64,7 +65,8 @@ console.log("TL;DR - Make sure you have a backup!"); console.log(" e.g.: mongodump -h 127.0.0.1 --port 3101 -d meteor"); console.log(""); console.log("Press ENTER to continue - or Ctrl+C to quit..."); -require("child_process").spawnSync("read _ ", { + +spawnSync("read _ ", { shell: true, stdio: [0, 1, 2], }); diff --git a/tests/unit/imports/Minutes.test.js b/tests/unit/imports/Minutes.test.js index dd44b22a8..a99905b24 100644 --- a/tests/unit/imports/Minutes.test.js +++ b/tests/unit/imports/Minutes.test.js @@ -3,7 +3,6 @@ import _ from "lodash"; import proxyquire from "proxyquire"; import sinon from "sinon"; -import * as Helpers from "../../../imports/helpers/date"; import * as EmailHelpers from "../../../imports/helpers/email"; import * as SubElements from "../../../imports/helpers/subElements"; diff --git a/tests/unit/server/migrations/migrate_v1.test.js b/tests/unit/server/migrations/migrate_v1.test.js index 6166f8559..01df25804 100644 --- a/tests/unit/server/migrations/migrate_v1.test.js +++ b/tests/unit/server/migrations/migrate_v1.test.js @@ -2,7 +2,6 @@ import { expect } from "chai"; import proxyquire from "proxyquire"; import sinon from "sinon"; -import * as Helpers from "../../../../imports/helpers/date"; const MinutesSchema = { minutes: [], @@ -34,15 +33,12 @@ const MeetingSeriesSchema = { }; MeetingSeriesSchema.getCollection = (_) => MeetingSeriesSchema; -Helpers["@noCallThru"] = true; - const { MigrateV1 } = proxyquire("../../../../server/migrations/migrate_v1", { "/imports/collections/minutes.schema": { MinutesSchema, "@noCallThru": true }, "/imports/collections/meetingseries.schema": { MeetingSeriesSchema, "@noCallThru": true, }, - "/imports/helpers/date": Helpers, }); /**