c8fa571f32
Get the save replay setting when the session started to prevent inconsistent behaviour when the setting changed before the session was processed by the live ending job Display more information about the potential session replay in live modal information
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import * as Sequelize from 'sequelize'
|
|
|
|
async function up (utils: {
|
|
transaction: Sequelize.Transaction
|
|
queryInterface: Sequelize.QueryInterface
|
|
sequelize: Sequelize.Sequelize
|
|
db: any
|
|
}): Promise<void> {
|
|
const { transaction } = utils
|
|
|
|
{
|
|
const data = {
|
|
type: Sequelize.BOOLEAN,
|
|
defaultValue: null,
|
|
allowNull: true
|
|
}
|
|
await utils.queryInterface.addColumn('videoLiveSession', 'endingProcessed', data, { transaction })
|
|
await utils.queryInterface.addColumn('videoLiveSession', 'saveReplay', data, { transaction })
|
|
}
|
|
|
|
{
|
|
const query = `UPDATE "videoLiveSession" SET "saveReplay" = (
|
|
SELECT "videoLive"."saveReplay" FROM "videoLive" WHERE "videoLive"."videoId" = "videoLiveSession"."liveVideoId"
|
|
) WHERE "videoLiveSession"."liveVideoId" IS NOT NULL`
|
|
await utils.sequelize.query(query, { transaction })
|
|
}
|
|
|
|
{
|
|
const query = `UPDATE "videoLiveSession" SET "saveReplay" = FALSE WHERE "saveReplay" IS NULL`
|
|
await utils.sequelize.query(query, { transaction })
|
|
}
|
|
|
|
{
|
|
const query = `UPDATE "videoLiveSession" SET "endingProcessed" = TRUE`
|
|
await utils.sequelize.query(query, { transaction })
|
|
}
|
|
|
|
{
|
|
const data = {
|
|
type: Sequelize.BOOLEAN,
|
|
defaultValue: null,
|
|
allowNull: false
|
|
}
|
|
await utils.queryInterface.changeColumn('videoLiveSession', 'endingProcessed', data, { transaction })
|
|
await utils.queryInterface.changeColumn('videoLiveSession', 'saveReplay', data, { transaction })
|
|
}
|
|
}
|
|
|
|
function down (options) {
|
|
throw new Error('Not implemented.')
|
|
}
|
|
|
|
export {
|
|
up,
|
|
down
|
|
}
|