]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/models/shared/update.ts
Fix peertube subtitles import
[github/Chocobozzz/PeerTube.git] / server / models / shared / update.ts
1 import { QueryTypes, Sequelize, Transaction } from 'sequelize'
2
3 const updating = new Set<string>()
4
5 // Sequelize always skip the update if we only update updatedAt field
6 async function setAsUpdated (options: {
7 sequelize: Sequelize
8 table: string
9 id: number
10 transaction?: Transaction
11 }) {
12 const { sequelize, table, id, transaction } = options
13 const key = table + '-' + id
14
15 if (updating.has(key)) return
16 updating.add(key)
17
18 try {
19 await sequelize.query(
20 `UPDATE "${table}" SET "updatedAt" = :updatedAt WHERE id = :id`,
21 {
22 replacements: { table, id, updatedAt: new Date() },
23 type: QueryTypes.UPDATE,
24 transaction
25 }
26 )
27 } finally {
28 updating.delete(key)
29 }
30 }
31
32 export {
33 setAsUpdated
34 }