aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/controllers/api/videos
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2017-12-12 17:53:50 +0100
committerChocobozzz <me@florianbigard.com>2017-12-13 16:50:33 +0100
commit3fd3ab2d34d512b160a5e6084d7609be7b4f4452 (patch)
treee5ca358287fca6ecacce83defcf23af1e8e9f419 /server/controllers/api/videos
parentc893d4514e6ecbf282c7985fe5f82b8acd8a1137 (diff)
downloadPeerTube-3fd3ab2d34d512b160a5e6084d7609be7b4f4452.tar.gz
PeerTube-3fd3ab2d34d512b160a5e6084d7609be7b4f4452.tar.zst
PeerTube-3fd3ab2d34d512b160a5e6084d7609be7b4f4452.zip
Move models to typescript-sequelize
Diffstat (limited to 'server/controllers/api/videos')
-rw-r--r--server/controllers/api/videos/abuse.ts17
-rw-r--r--server/controllers/api/videos/blacklist.ts12
-rw-r--r--server/controllers/api/videos/channel.ts27
-rw-r--r--server/controllers/api/videos/index.ts53
-rw-r--r--server/controllers/api/videos/rate.ts20
5 files changed, 67 insertions, 62 deletions
diff --git a/server/controllers/api/videos/abuse.ts b/server/controllers/api/videos/abuse.ts
index 29e1175c5..08cc4d0b4 100644
--- a/server/controllers/api/videos/abuse.ts
+++ b/server/controllers/api/videos/abuse.ts
@@ -1,11 +1,10 @@
1import * as express from 'express' 1import * as express from 'express'
2
3import { database as db } from '../../../initializers/database'
4import { 2import {
5 logger, 3 logger,
6 getFormattedObjects, 4 getFormattedObjects,
7 retryTransactionWrapper 5 retryTransactionWrapper
8} from '../../../helpers' 6} from '../../../helpers'
7import { sequelizeTypescript } from '../../../initializers'
9import { 8import {
10 authenticate, 9 authenticate,
11 ensureUserHasRight, 10 ensureUserHasRight,
@@ -16,9 +15,11 @@ import {
16 setPagination, 15 setPagination,
17 asyncMiddleware 16 asyncMiddleware
18} from '../../../middlewares' 17} from '../../../middlewares'
19import { VideoInstance } from '../../../models'
20import { VideoAbuseCreate, UserRight } from '../../../../shared' 18import { VideoAbuseCreate, UserRight } from '../../../../shared'
21import { sendVideoAbuse } from '../../../lib/index' 19import { sendVideoAbuse } from '../../../lib/index'
20import { AccountModel } from '../../../models/account/account'
21import { VideoModel } from '../../../models/video/video'
22import { VideoAbuseModel } from '../../../models/video/video-abuse'
22 23
23const abuseVideoRouter = express.Router() 24const abuseVideoRouter = express.Router()
24 25
@@ -46,7 +47,7 @@ export {
46// --------------------------------------------------------------------------- 47// ---------------------------------------------------------------------------
47 48
48async function listVideoAbuses (req: express.Request, res: express.Response, next: express.NextFunction) { 49async function listVideoAbuses (req: express.Request, res: express.Response, next: express.NextFunction) {
49 const resultList = await db.VideoAbuse.listForApi(req.query.start, req.query.count, req.query.sort) 50 const resultList = await VideoAbuseModel.listForApi(req.query.start, req.query.count, req.query.sort)
50 51
51 return res.json(getFormattedObjects(resultList.data, resultList.total)) 52 return res.json(getFormattedObjects(resultList.data, resultList.total))
52} 53}
@@ -63,8 +64,8 @@ async function reportVideoAbuseRetryWrapper (req: express.Request, res: express.
63} 64}
64 65
65async function reportVideoAbuse (req: express.Request, res: express.Response) { 66async function reportVideoAbuse (req: express.Request, res: express.Response) {
66 const videoInstance = res.locals.video as VideoInstance 67 const videoInstance = res.locals.video as VideoModel
67 const reporterAccount = res.locals.oauth.token.User.Account 68 const reporterAccount = res.locals.oauth.token.User.Account as AccountModel
68 const body: VideoAbuseCreate = req.body 69 const body: VideoAbuseCreate = req.body
69 70
70 const abuseToCreate = { 71 const abuseToCreate = {
@@ -73,8 +74,8 @@ async function reportVideoAbuse (req: express.Request, res: express.Response) {
73 videoId: videoInstance.id 74 videoId: videoInstance.id
74 } 75 }
75 76
76 await db.sequelize.transaction(async t => { 77 await sequelizeTypescript.transaction(async t => {
77 const videoAbuseInstance = await db.VideoAbuse.create(abuseToCreate, { transaction: t }) 78 const videoAbuseInstance = await VideoAbuseModel.create(abuseToCreate, { transaction: t })
78 videoAbuseInstance.Video = videoInstance 79 videoAbuseInstance.Video = videoInstance
79 80
80 // We send the video abuse to the origin server 81 // We send the video abuse to the origin server
diff --git a/server/controllers/api/videos/blacklist.ts b/server/controllers/api/videos/blacklist.ts
index 06333c271..d08c6e13f 100644
--- a/server/controllers/api/videos/blacklist.ts
+++ b/server/controllers/api/videos/blacklist.ts
@@ -1,6 +1,4 @@
1import * as express from 'express' 1import * as express from 'express'
2
3import { database as db } from '../../../initializers'
4import { logger, getFormattedObjects } from '../../../helpers' 2import { logger, getFormattedObjects } from '../../../helpers'
5import { 3import {
6 authenticate, 4 authenticate,
@@ -13,8 +11,8 @@ import {
13 setPagination, 11 setPagination,
14 asyncMiddleware 12 asyncMiddleware
15} from '../../../middlewares' 13} from '../../../middlewares'
16import { BlacklistedVideoInstance } from '../../../models'
17import { BlacklistedVideo, UserRight } from '../../../../shared' 14import { BlacklistedVideo, UserRight } from '../../../../shared'
15import { VideoBlacklistModel } from '../../../models/video/video-blacklist'
18 16
19const blacklistRouter = express.Router() 17const blacklistRouter = express.Router()
20 18
@@ -57,18 +55,18 @@ async function addVideoToBlacklist (req: express.Request, res: express.Response,
57 videoId: videoInstance.id 55 videoId: videoInstance.id
58 } 56 }
59 57
60 await db.BlacklistedVideo.create(toCreate) 58 await VideoBlacklistModel.create(toCreate)
61 return res.type('json').status(204).end() 59 return res.type('json').status(204).end()
62} 60}
63 61
64async function listBlacklist (req: express.Request, res: express.Response, next: express.NextFunction) { 62async function listBlacklist (req: express.Request, res: express.Response, next: express.NextFunction) {
65 const resultList = await db.BlacklistedVideo.listForApi(req.query.start, req.query.count, req.query.sort) 63 const resultList = await VideoBlacklistModel.listForApi(req.query.start, req.query.count, req.query.sort)
66 64
67 return res.json(getFormattedObjects<BlacklistedVideo, BlacklistedVideoInstance>(resultList.data, resultList.total)) 65 return res.json(getFormattedObjects<BlacklistedVideo, VideoBlacklistModel>(resultList.data, resultList.total))
68} 66}
69 67
70async function removeVideoFromBlacklistController (req: express.Request, res: express.Response, next: express.NextFunction) { 68async function removeVideoFromBlacklistController (req: express.Request, res: express.Response, next: express.NextFunction) {
71 const blacklistedVideo = res.locals.blacklistedVideo as BlacklistedVideoInstance 69 const blacklistedVideo = res.locals.blacklistedVideo as VideoBlacklistModel
72 70
73 try { 71 try {
74 await blacklistedVideo.destroy() 72 await blacklistedVideo.destroy()
diff --git a/server/controllers/api/videos/channel.ts b/server/controllers/api/videos/channel.ts
index d99f47c32..683b0448d 100644
--- a/server/controllers/api/videos/channel.ts
+++ b/server/controllers/api/videos/channel.ts
@@ -1,7 +1,7 @@
1import * as express from 'express' 1import * as express from 'express'
2import { VideoChannelCreate, VideoChannelUpdate } from '../../../../shared' 2import { VideoChannelCreate, VideoChannelUpdate } from '../../../../shared'
3import { getFormattedObjects, logger, resetSequelizeInstance, retryTransactionWrapper } from '../../../helpers' 3import { getFormattedObjects, logger, resetSequelizeInstance, retryTransactionWrapper } from '../../../helpers'
4import { database as db } from '../../../initializers' 4import { sequelizeTypescript } from '../../../initializers'
5import { createVideoChannel } from '../../../lib' 5import { createVideoChannel } from '../../../lib'
6import { sendUpdateVideoChannel } from '../../../lib/activitypub/send/send-update' 6import { sendUpdateVideoChannel } from '../../../lib/activitypub/send/send-update'
7import { 7import {
@@ -17,7 +17,8 @@ import {
17 videoChannelsSortValidator, 17 videoChannelsSortValidator,
18 videoChannelsUpdateValidator 18 videoChannelsUpdateValidator
19} from '../../../middlewares' 19} from '../../../middlewares'
20import { AccountInstance, VideoChannelInstance } from '../../../models' 20import { AccountModel } from '../../../models/account/account'
21import { VideoChannelModel } from '../../../models/video/video-channel'
21 22
22const videoChannelRouter = express.Router() 23const videoChannelRouter = express.Router()
23 24
@@ -66,13 +67,13 @@ export {
66// --------------------------------------------------------------------------- 67// ---------------------------------------------------------------------------
67 68
68async function listVideoChannels (req: express.Request, res: express.Response, next: express.NextFunction) { 69async function listVideoChannels (req: express.Request, res: express.Response, next: express.NextFunction) {
69 const resultList = await db.VideoChannel.listForApi(req.query.start, req.query.count, req.query.sort) 70 const resultList = await VideoChannelModel.listForApi(req.query.start, req.query.count, req.query.sort)
70 71
71 return res.json(getFormattedObjects(resultList.data, resultList.total)) 72 return res.json(getFormattedObjects(resultList.data, resultList.total))
72} 73}
73 74
74async function listVideoAccountChannels (req: express.Request, res: express.Response, next: express.NextFunction) { 75async function listVideoAccountChannels (req: express.Request, res: express.Response, next: express.NextFunction) {
75 const resultList = await db.VideoChannel.listByAccount(res.locals.account.id) 76 const resultList = await VideoChannelModel.listByAccount(res.locals.account.id)
76 77
77 return res.json(getFormattedObjects(resultList.data, resultList.total)) 78 return res.json(getFormattedObjects(resultList.data, resultList.total))
78} 79}
@@ -93,10 +94,10 @@ async function addVideoChannelRetryWrapper (req: express.Request, res: express.R
93 94
94async function addVideoChannel (req: express.Request, res: express.Response) { 95async function addVideoChannel (req: express.Request, res: express.Response) {
95 const videoChannelInfo: VideoChannelCreate = req.body 96 const videoChannelInfo: VideoChannelCreate = req.body
96 const account: AccountInstance = res.locals.oauth.token.User.Account 97 const account: AccountModel = res.locals.oauth.token.User.Account
97 let videoChannelCreated: VideoChannelInstance 98 let videoChannelCreated: VideoChannelModel
98 99
99 await db.sequelize.transaction(async t => { 100 await sequelizeTypescript.transaction(async t => {
100 videoChannelCreated = await createVideoChannel(videoChannelInfo, account, t) 101 videoChannelCreated = await createVideoChannel(videoChannelInfo, account, t)
101 }) 102 })
102 103
@@ -115,12 +116,12 @@ async function updateVideoChannelRetryWrapper (req: express.Request, res: expres
115} 116}
116 117
117async function updateVideoChannel (req: express.Request, res: express.Response) { 118async function updateVideoChannel (req: express.Request, res: express.Response) {
118 const videoChannelInstance: VideoChannelInstance = res.locals.videoChannel 119 const videoChannelInstance = res.locals.videoChannel as VideoChannelModel
119 const videoChannelFieldsSave = videoChannelInstance.toJSON() 120 const videoChannelFieldsSave = videoChannelInstance.toJSON()
120 const videoChannelInfoToUpdate: VideoChannelUpdate = req.body 121 const videoChannelInfoToUpdate = req.body as VideoChannelUpdate
121 122
122 try { 123 try {
123 await db.sequelize.transaction(async t => { 124 await sequelizeTypescript.transaction(async t => {
124 const sequelizeOptions = { 125 const sequelizeOptions = {
125 transaction: t 126 transaction: t
126 } 127 }
@@ -158,9 +159,9 @@ async function removeVideoChannelRetryWrapper (req: express.Request, res: expres
158} 159}
159 160
160async function removeVideoChannel (req: express.Request, res: express.Response) { 161async function removeVideoChannel (req: express.Request, res: express.Response) {
161 const videoChannelInstance: VideoChannelInstance = res.locals.videoChannel 162 const videoChannelInstance: VideoChannelModel = res.locals.videoChannel
162 163
163 await db.sequelize.transaction(async t => { 164 await sequelizeTypescript.transaction(async t => {
164 await videoChannelInstance.destroy({ transaction: t }) 165 await videoChannelInstance.destroy({ transaction: t })
165 }) 166 })
166 167
@@ -168,7 +169,7 @@ async function removeVideoChannel (req: express.Request, res: express.Response)
168} 169}
169 170
170async function getVideoChannel (req: express.Request, res: express.Response, next: express.NextFunction) { 171async function getVideoChannel (req: express.Request, res: express.Response, next: express.NextFunction) {
171 const videoChannelWithVideos = await db.VideoChannel.loadAndPopulateAccountAndVideos(res.locals.videoChannel.id) 172 const videoChannelWithVideos = await VideoChannelModel.loadAndPopulateAccountAndVideos(res.locals.videoChannel.id)
172 173
173 return res.json(videoChannelWithVideos.toFormattedJSON()) 174 return res.json(videoChannelWithVideos.toFormattedJSON())
174} 175}
diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts
index 63de662a7..91ab8c66a 100644
--- a/server/controllers/api/videos/index.ts
+++ b/server/controllers/api/videos/index.ts
@@ -12,16 +12,19 @@ import {
12 retryTransactionWrapper 12 retryTransactionWrapper
13} from '../../../helpers' 13} from '../../../helpers'
14import { getServerAccount } from '../../../helpers/utils' 14import { getServerAccount } from '../../../helpers/utils'
15import { CONFIG, VIDEO_CATEGORIES, VIDEO_LANGUAGES, VIDEO_LICENCES, VIDEO_MIMETYPE_EXT, VIDEO_PRIVACIES } from '../../../initializers' 15import {
16import { database as db } from '../../../initializers/database' 16 CONFIG,
17import { sendAddVideo } from '../../../lib/activitypub/send/send-add' 17 sequelizeTypescript,
18import { sendCreateViewToOrigin } from '../../../lib/activitypub/send/send-create' 18 VIDEO_CATEGORIES,
19import { sendUpdateVideo } from '../../../lib/activitypub/send/send-update' 19 VIDEO_LANGUAGES,
20import { shareVideoByServer } from '../../../lib/activitypub/share' 20 VIDEO_LICENCES,
21import { getVideoActivityPubUrl } from '../../../lib/activitypub/url' 21 VIDEO_MIMETYPE_EXT,
22import { fetchRemoteVideoDescription } from '../../../lib/activitypub/videos' 22 VIDEO_PRIVACIES
23} from '../../../initializers'
24import { fetchRemoteVideoDescription, getVideoActivityPubUrl, shareVideoByServer } from '../../../lib/activitypub'
25import { sendAddVideo, sendCreateViewToOrigin, sendUpdateVideo } from '../../../lib/activitypub/send'
23import { sendCreateViewToVideoFollowers } from '../../../lib/index' 26import { sendCreateViewToVideoFollowers } from '../../../lib/index'
24import { transcodingJobScheduler } from '../../../lib/jobs/transcoding-job-scheduler/transcoding-job-scheduler' 27import { transcodingJobScheduler } from '../../../lib/jobs/transcoding-job-scheduler'
25import { 28import {
26 asyncMiddleware, 29 asyncMiddleware,
27 authenticate, 30 authenticate,
@@ -35,7 +38,9 @@ import {
35 videosSortValidator, 38 videosSortValidator,
36 videosUpdateValidator 39 videosUpdateValidator
37} from '../../../middlewares' 40} from '../../../middlewares'
38import { VideoInstance } from '../../../models' 41import { TagModel } from '../../../models/video/tag'
42import { VideoModel } from '../../../models/video/video'
43import { VideoFileModel } from '../../../models/video/video-file'
39import { abuseVideoRouter } from './abuse' 44import { abuseVideoRouter } from './abuse'
40import { blacklistRouter } from './blacklist' 45import { blacklistRouter } from './blacklist'
41import { videoChannelRouter } from './channel' 46import { videoChannelRouter } from './channel'
@@ -99,7 +104,7 @@ videosRouter.put('/:id',
99videosRouter.post('/upload', 104videosRouter.post('/upload',
100 authenticate, 105 authenticate,
101 reqFiles, 106 reqFiles,
102 videosAddValidator, 107 asyncMiddleware(videosAddValidator),
103 asyncMiddleware(addVideoRetryWrapper) 108 asyncMiddleware(addVideoRetryWrapper)
104) 109)
105 110
@@ -181,7 +186,7 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi
181 duration: videoPhysicalFile['duration'], // duration was added by a previous middleware 186 duration: videoPhysicalFile['duration'], // duration was added by a previous middleware
182 channelId: res.locals.videoChannel.id 187 channelId: res.locals.videoChannel.id
183 } 188 }
184 const video = db.Video.build(videoData) 189 const video = new VideoModel(videoData)
185 video.url = getVideoActivityPubUrl(video) 190 video.url = getVideoActivityPubUrl(video)
186 191
187 const videoFilePath = join(CONFIG.STORAGE.VIDEOS_DIR, videoPhysicalFile.filename) 192 const videoFilePath = join(CONFIG.STORAGE.VIDEOS_DIR, videoPhysicalFile.filename)
@@ -192,7 +197,7 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi
192 resolution: videoFileHeight, 197 resolution: videoFileHeight,
193 size: videoPhysicalFile.size 198 size: videoPhysicalFile.size
194 } 199 }
195 const videoFile = db.VideoFile.build(videoFileData) 200 const videoFile = new VideoFileModel(videoFileData)
196 const videoDir = CONFIG.STORAGE.VIDEOS_DIR 201 const videoDir = CONFIG.STORAGE.VIDEOS_DIR
197 const source = join(videoDir, videoPhysicalFile.filename) 202 const source = join(videoDir, videoPhysicalFile.filename)
198 const destination = join(videoDir, video.getVideoFilename(videoFile)) 203 const destination = join(videoDir, video.getVideoFilename(videoFile))
@@ -210,7 +215,7 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi
210 ) 215 )
211 await Promise.all(tasks) 216 await Promise.all(tasks)
212 217
213 return db.sequelize.transaction(async t => { 218 return sequelizeTypescript.transaction(async t => {
214 const sequelizeOptions = { transaction: t } 219 const sequelizeOptions = { transaction: t }
215 220
216 if (CONFIG.TRANSCODING.ENABLED === true) { 221 if (CONFIG.TRANSCODING.ENABLED === true) {
@@ -232,9 +237,9 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi
232 video.VideoFiles = [ videoFile ] 237 video.VideoFiles = [ videoFile ]
233 238
234 if (videoInfo.tags) { 239 if (videoInfo.tags) {
235 const tagInstances = await db.Tag.findOrCreateTags(videoInfo.tags, t) 240 const tagInstances = await TagModel.findOrCreateTags(videoInfo.tags, t)
236 241
237 await video.setTags(tagInstances, sequelizeOptions) 242 await video.$set('Tags', tagInstances, sequelizeOptions)
238 video.Tags = tagInstances 243 video.Tags = tagInstances
239 } 244 }
240 245
@@ -264,13 +269,13 @@ async function updateVideoRetryWrapper (req: express.Request, res: express.Respo
264} 269}
265 270
266async function updateVideo (req: express.Request, res: express.Response) { 271async function updateVideo (req: express.Request, res: express.Response) {
267 const videoInstance: VideoInstance = res.locals.video 272 const videoInstance: VideoModel = res.locals.video
268 const videoFieldsSave = videoInstance.toJSON() 273 const videoFieldsSave = videoInstance.toJSON()
269 const videoInfoToUpdate: VideoUpdate = req.body 274 const videoInfoToUpdate: VideoUpdate = req.body
270 const wasPrivateVideo = videoInstance.privacy === VideoPrivacy.PRIVATE 275 const wasPrivateVideo = videoInstance.privacy === VideoPrivacy.PRIVATE
271 276
272 try { 277 try {
273 await db.sequelize.transaction(async t => { 278 await sequelizeTypescript.transaction(async t => {
274 const sequelizeOptions = { 279 const sequelizeOptions = {
275 transaction: t 280 transaction: t
276 } 281 }
@@ -286,9 +291,9 @@ async function updateVideo (req: express.Request, res: express.Response) {
286 const videoInstanceUpdated = await videoInstance.save(sequelizeOptions) 291 const videoInstanceUpdated = await videoInstance.save(sequelizeOptions)
287 292
288 if (videoInfoToUpdate.tags) { 293 if (videoInfoToUpdate.tags) {
289 const tagInstances = await db.Tag.findOrCreateTags(videoInfoToUpdate.tags, t) 294 const tagInstances = await TagModel.findOrCreateTags(videoInfoToUpdate.tags, t)
290 295
291 await videoInstance.setTags(tagInstances, sequelizeOptions) 296 await videoInstance.$set('Tags', tagInstances, sequelizeOptions)
292 videoInstance.Tags = tagInstances 297 videoInstance.Tags = tagInstances
293 } 298 }
294 299
@@ -350,7 +355,7 @@ async function getVideoDescription (req: express.Request, res: express.Response)
350} 355}
351 356
352async function listVideos (req: express.Request, res: express.Response, next: express.NextFunction) { 357async function listVideos (req: express.Request, res: express.Response, next: express.NextFunction) {
353 const resultList = await db.Video.listForApi(req.query.start, req.query.count, req.query.sort) 358 const resultList = await VideoModel.listForApi(req.query.start, req.query.count, req.query.sort)
354 359
355 return res.json(getFormattedObjects(resultList.data, resultList.total)) 360 return res.json(getFormattedObjects(resultList.data, resultList.total))
356} 361}
@@ -367,9 +372,9 @@ async function removeVideoRetryWrapper (req: express.Request, res: express.Respo
367} 372}
368 373
369async function removeVideo (req: express.Request, res: express.Response) { 374async function removeVideo (req: express.Request, res: express.Response) {
370 const videoInstance: VideoInstance = res.locals.video 375 const videoInstance: VideoModel = res.locals.video
371 376
372 await db.sequelize.transaction(async t => { 377 await sequelizeTypescript.transaction(async t => {
373 await videoInstance.destroy({ transaction: t }) 378 await videoInstance.destroy({ transaction: t })
374 }) 379 })
375 380
@@ -377,7 +382,7 @@ async function removeVideo (req: express.Request, res: express.Response) {
377} 382}
378 383
379async function searchVideos (req: express.Request, res: express.Response, next: express.NextFunction) { 384async function searchVideos (req: express.Request, res: express.Response, next: express.NextFunction) {
380 const resultList = await db.Video.searchAndPopulateAccountAndServerAndTags( 385 const resultList = await VideoModel.searchAndPopulateAccountAndServerAndTags(
381 req.query.search, 386 req.query.search,
382 req.query.start, 387 req.query.start,
383 req.query.count, 388 req.query.count,
diff --git a/server/controllers/api/videos/rate.ts b/server/controllers/api/videos/rate.ts
index c27c61116..48b744b0c 100644
--- a/server/controllers/api/videos/rate.ts
+++ b/server/controllers/api/videos/rate.ts
@@ -1,12 +1,12 @@
1import * as express from 'express' 1import * as express from 'express'
2import { UserVideoRateUpdate } from '../../../../shared' 2import { UserVideoRateUpdate } from '../../../../shared'
3import { logger, retryTransactionWrapper } from '../../../helpers' 3import { logger, retryTransactionWrapper } from '../../../helpers'
4import { VIDEO_RATE_TYPES } from '../../../initializers' 4import { sequelizeTypescript, VIDEO_RATE_TYPES } from '../../../initializers'
5import { database as db } from '../../../initializers/database' 5import { sendVideoRateChangeToFollowers, sendVideoRateChangeToOrigin } from '../../../lib/activitypub'
6import { sendVideoRateChangeToFollowers, sendVideoRateChangeToOrigin } from '../../../lib/activitypub/videos'
7import { asyncMiddleware, authenticate, videoRateValidator } from '../../../middlewares' 6import { asyncMiddleware, authenticate, videoRateValidator } from '../../../middlewares'
8import { AccountInstance } from '../../../models/account/account-interface' 7import { AccountModel } from '../../../models/account/account'
9import { VideoInstance } from '../../../models/video/video-interface' 8import { AccountVideoRateModel } from '../../../models/account/account-video-rate'
9import { VideoModel } from '../../../models/video/video'
10 10
11const rateVideoRouter = express.Router() 11const rateVideoRouter = express.Router()
12 12
@@ -38,12 +38,12 @@ async function rateVideoRetryWrapper (req: express.Request, res: express.Respons
38async function rateVideo (req: express.Request, res: express.Response) { 38async function rateVideo (req: express.Request, res: express.Response) {
39 const body: UserVideoRateUpdate = req.body 39 const body: UserVideoRateUpdate = req.body
40 const rateType = body.rating 40 const rateType = body.rating
41 const videoInstance: VideoInstance = res.locals.video 41 const videoInstance: VideoModel = res.locals.video
42 const accountInstance: AccountInstance = res.locals.oauth.token.User.Account 42 const accountInstance: AccountModel = res.locals.oauth.token.User.Account
43 43
44 await db.sequelize.transaction(async t => { 44 await sequelizeTypescript.transaction(async t => {
45 const sequelizeOptions = { transaction: t } 45 const sequelizeOptions = { transaction: t }
46 const previousRate = await db.AccountVideoRate.load(accountInstance.id, videoInstance.id, t) 46 const previousRate = await AccountVideoRateModel.load(accountInstance.id, videoInstance.id, t)
47 47
48 let likesToIncrement = 0 48 let likesToIncrement = 0
49 let dislikesToIncrement = 0 49 let dislikesToIncrement = 0
@@ -71,7 +71,7 @@ async function rateVideo (req: express.Request, res: express.Response) {
71 type: rateType 71 type: rateType
72 } 72 }
73 73
74 await db.AccountVideoRate.create(query, sequelizeOptions) 74 await AccountVideoRateModel.create(query, sequelizeOptions)
75 } 75 }
76 76
77 const incrementQuery = { 77 const incrementQuery = {