Browse Source

fix: activity items <youtubeId> payload message wasn't migrated, and another small bug

Kristian Vos 1 year ago
parent
commit
f545dfeb0f

+ 1 - 1
backend/logic/db/index.js

@@ -6,7 +6,7 @@ import async from "async";
 import CoreClass from "../../core";
 
 const REQUIRED_DOCUMENT_VERSIONS = {
-	activity: 3,
+	activity: 4,
 	news: 3,
 	playlist: 7,
 	punishment: 1,

+ 37 - 0
backend/logic/migration/migrations/migration25.js

@@ -47,6 +47,43 @@ export default async function migrate(MigrationModule) {
 		});
 	});
 
+	await new Promise((resolve, reject) => {
+		this.log("INFO", `Migration 25. Updating activity with document version 3.`);
+
+		activityModel.find({ documentVersion: 3 }, (err, activities) => {
+			if (err) reject(err);
+			else {
+				async.eachLimit(
+					activities.map(activity => activity._doc),
+					1,
+					(activity, next) => {
+						const updateObject = { $set: { documentVersion: 4 } };
+
+						if (activity.payload.message) {
+							activity.payload.message = activity.payload.message.replaceAll(
+								"<youtubeId>",
+								"<mediaSource>"
+							);
+							activity.payload.message = activity.payload.message.replaceAll(
+								"</youtubeId>",
+								"</mediaSource>"
+							);
+						}
+
+						updateObject.$set.payload = activity.payload;
+
+						activityModel.updateOne({ _id: activity._id }, updateObject, next);
+					},
+					err => {
+						this.log("INFO", `Migration 25. Activities found: ${activities.length}.`);
+						if (err) reject(err);
+						else resolve();
+					}
+				);
+			}
+		});
+	});
+
 	await new Promise((resolve, reject) => {
 		this.log("INFO", `Migration 25. Updating playlist with document version 6.`);
 

+ 1 - 1
frontend/src/components/ActivityItem.vue

@@ -26,7 +26,7 @@ const messageStripped = computed(() => {
 	let { message } = props.activity.payload;
 
 	message = message.replace(/<reportId>(.*)<\/reportId>/g, "report");
-	message = message.replace(/<mediaSource>(.*)<\/mediaSource/g, "$1");
+	message = message.replace(/<mediaSource>(.*)<\/mediaSource>/g, "$1");
 	message = message.replace(/<playlistId>(.*)<\/playlistId>/g, `$1`);
 	message = message.replace(/<stationId>(.*)<\/stationId>/g, `$1`);