diff options
author | Chocobozzz <me@florianbigard.com> | 2017-12-12 17:53:50 +0100 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2017-12-13 16:50:33 +0100 |
commit | 3fd3ab2d34d512b160a5e6084d7609be7b4f4452 (patch) | |
tree | e5ca358287fca6ecacce83defcf23af1e8e9f419 /server/controllers/api/videos | |
parent | c893d4514e6ecbf282c7985fe5f82b8acd8a1137 (diff) | |
download | PeerTube-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.ts | 17 | ||||
-rw-r--r-- | server/controllers/api/videos/blacklist.ts | 12 | ||||
-rw-r--r-- | server/controllers/api/videos/channel.ts | 27 | ||||
-rw-r--r-- | server/controllers/api/videos/index.ts | 53 | ||||
-rw-r--r-- | server/controllers/api/videos/rate.ts | 20 |
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 @@ | |||
1 | import * as express from 'express' | 1 | import * as express from 'express' |
2 | |||
3 | import { database as db } from '../../../initializers/database' | ||
4 | import { | 2 | import { |
5 | logger, | 3 | logger, |
6 | getFormattedObjects, | 4 | getFormattedObjects, |
7 | retryTransactionWrapper | 5 | retryTransactionWrapper |
8 | } from '../../../helpers' | 6 | } from '../../../helpers' |
7 | import { sequelizeTypescript } from '../../../initializers' | ||
9 | import { | 8 | import { |
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' |
19 | import { VideoInstance } from '../../../models' | ||
20 | import { VideoAbuseCreate, UserRight } from '../../../../shared' | 18 | import { VideoAbuseCreate, UserRight } from '../../../../shared' |
21 | import { sendVideoAbuse } from '../../../lib/index' | 19 | import { sendVideoAbuse } from '../../../lib/index' |
20 | import { AccountModel } from '../../../models/account/account' | ||
21 | import { VideoModel } from '../../../models/video/video' | ||
22 | import { VideoAbuseModel } from '../../../models/video/video-abuse' | ||
22 | 23 | ||
23 | const abuseVideoRouter = express.Router() | 24 | const abuseVideoRouter = express.Router() |
24 | 25 | ||
@@ -46,7 +47,7 @@ export { | |||
46 | // --------------------------------------------------------------------------- | 47 | // --------------------------------------------------------------------------- |
47 | 48 | ||
48 | async function listVideoAbuses (req: express.Request, res: express.Response, next: express.NextFunction) { | 49 | async 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 | ||
65 | async function reportVideoAbuse (req: express.Request, res: express.Response) { | 66 | async 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 @@ | |||
1 | import * as express from 'express' | 1 | import * as express from 'express' |
2 | |||
3 | import { database as db } from '../../../initializers' | ||
4 | import { logger, getFormattedObjects } from '../../../helpers' | 2 | import { logger, getFormattedObjects } from '../../../helpers' |
5 | import { | 3 | import { |
6 | authenticate, | 4 | authenticate, |
@@ -13,8 +11,8 @@ import { | |||
13 | setPagination, | 11 | setPagination, |
14 | asyncMiddleware | 12 | asyncMiddleware |
15 | } from '../../../middlewares' | 13 | } from '../../../middlewares' |
16 | import { BlacklistedVideoInstance } from '../../../models' | ||
17 | import { BlacklistedVideo, UserRight } from '../../../../shared' | 14 | import { BlacklistedVideo, UserRight } from '../../../../shared' |
15 | import { VideoBlacklistModel } from '../../../models/video/video-blacklist' | ||
18 | 16 | ||
19 | const blacklistRouter = express.Router() | 17 | const 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 | ||
64 | async function listBlacklist (req: express.Request, res: express.Response, next: express.NextFunction) { | 62 | async 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 | ||
70 | async function removeVideoFromBlacklistController (req: express.Request, res: express.Response, next: express.NextFunction) { | 68 | async 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 @@ | |||
1 | import * as express from 'express' | 1 | import * as express from 'express' |
2 | import { VideoChannelCreate, VideoChannelUpdate } from '../../../../shared' | 2 | import { VideoChannelCreate, VideoChannelUpdate } from '../../../../shared' |
3 | import { getFormattedObjects, logger, resetSequelizeInstance, retryTransactionWrapper } from '../../../helpers' | 3 | import { getFormattedObjects, logger, resetSequelizeInstance, retryTransactionWrapper } from '../../../helpers' |
4 | import { database as db } from '../../../initializers' | 4 | import { sequelizeTypescript } from '../../../initializers' |
5 | import { createVideoChannel } from '../../../lib' | 5 | import { createVideoChannel } from '../../../lib' |
6 | import { sendUpdateVideoChannel } from '../../../lib/activitypub/send/send-update' | 6 | import { sendUpdateVideoChannel } from '../../../lib/activitypub/send/send-update' |
7 | import { | 7 | import { |
@@ -17,7 +17,8 @@ import { | |||
17 | videoChannelsSortValidator, | 17 | videoChannelsSortValidator, |
18 | videoChannelsUpdateValidator | 18 | videoChannelsUpdateValidator |
19 | } from '../../../middlewares' | 19 | } from '../../../middlewares' |
20 | import { AccountInstance, VideoChannelInstance } from '../../../models' | 20 | import { AccountModel } from '../../../models/account/account' |
21 | import { VideoChannelModel } from '../../../models/video/video-channel' | ||
21 | 22 | ||
22 | const videoChannelRouter = express.Router() | 23 | const videoChannelRouter = express.Router() |
23 | 24 | ||
@@ -66,13 +67,13 @@ export { | |||
66 | // --------------------------------------------------------------------------- | 67 | // --------------------------------------------------------------------------- |
67 | 68 | ||
68 | async function listVideoChannels (req: express.Request, res: express.Response, next: express.NextFunction) { | 69 | async 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 | ||
74 | async function listVideoAccountChannels (req: express.Request, res: express.Response, next: express.NextFunction) { | 75 | async 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 | ||
94 | async function addVideoChannel (req: express.Request, res: express.Response) { | 95 | async 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 | ||
117 | async function updateVideoChannel (req: express.Request, res: express.Response) { | 118 | async 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 | ||
160 | async function removeVideoChannel (req: express.Request, res: express.Response) { | 161 | async 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 | ||
170 | async function getVideoChannel (req: express.Request, res: express.Response, next: express.NextFunction) { | 171 | async 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' |
14 | import { getServerAccount } from '../../../helpers/utils' | 14 | import { getServerAccount } from '../../../helpers/utils' |
15 | import { CONFIG, VIDEO_CATEGORIES, VIDEO_LANGUAGES, VIDEO_LICENCES, VIDEO_MIMETYPE_EXT, VIDEO_PRIVACIES } from '../../../initializers' | 15 | import { |
16 | import { database as db } from '../../../initializers/database' | 16 | CONFIG, |
17 | import { sendAddVideo } from '../../../lib/activitypub/send/send-add' | 17 | sequelizeTypescript, |
18 | import { sendCreateViewToOrigin } from '../../../lib/activitypub/send/send-create' | 18 | VIDEO_CATEGORIES, |
19 | import { sendUpdateVideo } from '../../../lib/activitypub/send/send-update' | 19 | VIDEO_LANGUAGES, |
20 | import { shareVideoByServer } from '../../../lib/activitypub/share' | 20 | VIDEO_LICENCES, |
21 | import { getVideoActivityPubUrl } from '../../../lib/activitypub/url' | 21 | VIDEO_MIMETYPE_EXT, |
22 | import { fetchRemoteVideoDescription } from '../../../lib/activitypub/videos' | 22 | VIDEO_PRIVACIES |
23 | } from '../../../initializers' | ||
24 | import { fetchRemoteVideoDescription, getVideoActivityPubUrl, shareVideoByServer } from '../../../lib/activitypub' | ||
25 | import { sendAddVideo, sendCreateViewToOrigin, sendUpdateVideo } from '../../../lib/activitypub/send' | ||
23 | import { sendCreateViewToVideoFollowers } from '../../../lib/index' | 26 | import { sendCreateViewToVideoFollowers } from '../../../lib/index' |
24 | import { transcodingJobScheduler } from '../../../lib/jobs/transcoding-job-scheduler/transcoding-job-scheduler' | 27 | import { transcodingJobScheduler } from '../../../lib/jobs/transcoding-job-scheduler' |
25 | import { | 28 | import { |
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' |
38 | import { VideoInstance } from '../../../models' | 41 | import { TagModel } from '../../../models/video/tag' |
42 | import { VideoModel } from '../../../models/video/video' | ||
43 | import { VideoFileModel } from '../../../models/video/video-file' | ||
39 | import { abuseVideoRouter } from './abuse' | 44 | import { abuseVideoRouter } from './abuse' |
40 | import { blacklistRouter } from './blacklist' | 45 | import { blacklistRouter } from './blacklist' |
41 | import { videoChannelRouter } from './channel' | 46 | import { videoChannelRouter } from './channel' |
@@ -99,7 +104,7 @@ videosRouter.put('/:id', | |||
99 | videosRouter.post('/upload', | 104 | videosRouter.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 | ||
266 | async function updateVideo (req: express.Request, res: express.Response) { | 271 | async 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 | ||
352 | async function listVideos (req: express.Request, res: express.Response, next: express.NextFunction) { | 357 | async 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 | ||
369 | async function removeVideo (req: express.Request, res: express.Response) { | 374 | async 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 | ||
379 | async function searchVideos (req: express.Request, res: express.Response, next: express.NextFunction) { | 384 | async 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 @@ | |||
1 | import * as express from 'express' | 1 | import * as express from 'express' |
2 | import { UserVideoRateUpdate } from '../../../../shared' | 2 | import { UserVideoRateUpdate } from '../../../../shared' |
3 | import { logger, retryTransactionWrapper } from '../../../helpers' | 3 | import { logger, retryTransactionWrapper } from '../../../helpers' |
4 | import { VIDEO_RATE_TYPES } from '../../../initializers' | 4 | import { sequelizeTypescript, VIDEO_RATE_TYPES } from '../../../initializers' |
5 | import { database as db } from '../../../initializers/database' | 5 | import { sendVideoRateChangeToFollowers, sendVideoRateChangeToOrigin } from '../../../lib/activitypub' |
6 | import { sendVideoRateChangeToFollowers, sendVideoRateChangeToOrigin } from '../../../lib/activitypub/videos' | ||
7 | import { asyncMiddleware, authenticate, videoRateValidator } from '../../../middlewares' | 6 | import { asyncMiddleware, authenticate, videoRateValidator } from '../../../middlewares' |
8 | import { AccountInstance } from '../../../models/account/account-interface' | 7 | import { AccountModel } from '../../../models/account/account' |
9 | import { VideoInstance } from '../../../models/video/video-interface' | 8 | import { AccountVideoRateModel } from '../../../models/account/account-video-rate' |
9 | import { VideoModel } from '../../../models/video/video' | ||
10 | 10 | ||
11 | const rateVideoRouter = express.Router() | 11 | const rateVideoRouter = express.Router() |
12 | 12 | ||
@@ -38,12 +38,12 @@ async function rateVideoRetryWrapper (req: express.Request, res: express.Respons | |||
38 | async function rateVideo (req: express.Request, res: express.Response) { | 38 | async 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 = { |