From fd45e8f43c2638478599ca75632518054461da85 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 31 Oct 2017 11:52:52 +0100 Subject: Add video privacy setting --- server/initializers/constants.ts | 10 ++++++- .../initializers/migrations/0095-videos-privacy.ts | 35 ++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 server/initializers/migrations/0095-videos-privacy.ts (limited to 'server/initializers') diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index adccb9f41..d349abaf0 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -12,10 +12,11 @@ import { RemoteVideoRequestType, JobState } from '../../shared/models' +import { VideoPrivacy } from '../../shared/models/videos/video-privacy.enum' // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 90 +const LAST_MIGRATION_VERSION = 95 // --------------------------------------------------------------------------- @@ -196,6 +197,12 @@ const VIDEO_LANGUAGES = { 14: 'Italian' } +const VIDEO_PRIVACIES = { + [VideoPrivacy.PUBLIC]: 'Public', + [VideoPrivacy.UNLISTED]: 'Unlisted', + [VideoPrivacy.PRIVATE]: 'Private' +} + // --------------------------------------------------------------------------- // Score a pod has when we create it as a friend @@ -394,6 +401,7 @@ export { THUMBNAILS_SIZE, VIDEO_CATEGORIES, VIDEO_LANGUAGES, + VIDEO_PRIVACIES, VIDEO_LICENCES, VIDEO_RATE_TYPES } diff --git a/server/initializers/migrations/0095-videos-privacy.ts b/server/initializers/migrations/0095-videos-privacy.ts new file mode 100644 index 000000000..4c2bf91d0 --- /dev/null +++ b/server/initializers/migrations/0095-videos-privacy.ts @@ -0,0 +1,35 @@ +import * as Sequelize from 'sequelize' + +async function up (utils: { + transaction: Sequelize.Transaction, + queryInterface: Sequelize.QueryInterface, + sequelize: Sequelize.Sequelize, + db: any +}): Promise { + const q = utils.queryInterface + + const data = { + type: Sequelize.INTEGER, + defaultValue: null, + allowNull: true + } + await q.addColumn('Videos', 'privacy', data) + + const query = 'UPDATE "Videos" SET "privacy" = 1' + const options = { + type: Sequelize.QueryTypes.BULKUPDATE + } + await utils.sequelize.query(query, options) + + data.allowNull = false + await q.changeColumn('Videos', 'privacy', data) +} + +function down (options) { + throw new Error('Not implemented.') +} + +export { + up, + down +} -- cgit v1.2.3