migration26.js 903 B

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. * Migration 26
  3. *
  4. * Migration for setting new user preferences to default
  5. * @param {object} MigrationModule - the MigrationModule
  6. * @returns {Promise} - returns promise
  7. */
  8. export default async function migrate(MigrationModule) {
  9. const userModel = await MigrationModule.runJob("GET_MODEL", { modelName: "user" }, this);
  10. return new Promise((resolve, reject) => {
  11. this.log("INFO", `Migration 26. Updating users with document version 4.`);
  12. userModel.updateMany(
  13. { documentVersion: 4 },
  14. {
  15. $set: {
  16. documentVersion: 5,
  17. "preferences.defaultStationPrivacy": "private",
  18. "preferences.defaultPlaylistPrivacy": "public"
  19. }
  20. },
  21. (err, res) => {
  22. if (err) reject(new Error(err));
  23. else {
  24. this.log(
  25. "INFO",
  26. `Migration 26. Matched: ${res.matchedCount}, modified: ${res.modifiedCount}, ok: ${res.ok}.`
  27. );
  28. resolve();
  29. }
  30. }
  31. );
  32. });
  33. }