From 4ba3b8ea1be85d95a508ac479f26b96ceea15971 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 26 Jan 2018 15:49:57 +0100 Subject: Don't rehost announced video activities --- server/initializers/constants.ts | 5 ++- .../migrations/0185-video-share-url.ts | 38 ++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 server/initializers/migrations/0185-video-share-url.ts (limited to 'server/initializers') diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 329d0ffe8..a88f9642c 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -12,7 +12,7 @@ let config: IConfig = require('config') // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 180 +const LAST_MIGRATION_VERSION = 185 // --------------------------------------------------------------------------- @@ -196,6 +196,9 @@ const CONSTRAINTS_FIELDS = { VIDEO_COMMENTS: { TEXT: { min: 2, max: 3000 }, // Length URL: { min: 3, max: 2000 } // Length + }, + VIDEO_SHARE: { + URL: { min: 3, max: 2000 } // Length } } diff --git a/server/initializers/migrations/0185-video-share-url.ts b/server/initializers/migrations/0185-video-share-url.ts new file mode 100644 index 000000000..f7eeb0878 --- /dev/null +++ b/server/initializers/migrations/0185-video-share-url.ts @@ -0,0 +1,38 @@ +import * as Sequelize from 'sequelize' + +async function up (utils: { + transaction: Sequelize.Transaction, + queryInterface: Sequelize.QueryInterface, + sequelize: Sequelize.Sequelize +}): Promise { + { + const query = 'DELETE FROM "videoShare" s1 ' + + 'USING (SELECT MIN(id) as id, "actorId", "videoId" FROM "videoShare" GROUP BY "actorId", "videoId" HAVING COUNT(*) > 1) s2 ' + + 'WHERE s1."actorId" = s2."actorId" AND s1."videoId" = s2."videoId" AND s1.id <> s2.id' + await utils.sequelize.query(query) + } + + { + const data = { + type: Sequelize.STRING, + allowNull: true, + defaultValue: null + } + await utils.queryInterface.addColumn('videoShare', 'url', data) + + const query = `UPDATE "videoShare" SET "url" = (SELECT "url" FROM "video" WHERE "id" = "videoId") || '/announces/' || "actorId"` + await utils.sequelize.query(query) + + data.allowNull = false + await utils.queryInterface.changeColumn('videoShare', 'url', data) + } +} + +function down (options) { + throw new Error('Not implemented.') +} + +export { + up, + down +} -- cgit v1.2.3