X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fvideos%2Frate.ts;h=b1732837d1518c08f7e58a85b2863e5a0e91ffe1;hb=a2377d15ee09301cf4cc5434ad865a21918da15f;hp=23e9de9f3577f5686dd52964082d085dd426083d;hpb=07197db4c567f22bbc9c12339062896dc76bac2f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/videos/rate.ts b/server/controllers/api/videos/rate.ts index 23e9de9f3..b1732837d 100644 --- a/server/controllers/api/videos/rate.ts +++ b/server/controllers/api/videos/rate.ts @@ -1,10 +1,9 @@ import * as express from 'express' import { UserVideoRateUpdate } from '../../../../shared' -import { retryTransactionWrapper } from '../../../helpers/database-utils' import { logger } from '../../../helpers/logger' import { sequelizeTypescript, VIDEO_RATE_TYPES } from '../../../initializers' import { sendVideoRateChange } from '../../../lib/activitypub' -import { asyncMiddleware, authenticate, videoRateValidator } from '../../../middlewares' +import { asyncMiddleware, asyncRetryTransactionMiddleware, authenticate, videoRateValidator } from '../../../middlewares' import { AccountModel } from '../../../models/account/account' import { AccountVideoRateModel } from '../../../models/account/account-video-rate' import { VideoModel } from '../../../models/video/video' @@ -14,7 +13,7 @@ const rateVideoRouter = express.Router() rateVideoRouter.put('/:id/rate', authenticate, asyncMiddleware(videoRateValidator), - asyncMiddleware(rateVideoRetryWrapper) + asyncRetryTransactionMiddleware(rateVideo) ) // --------------------------------------------------------------------------- @@ -25,17 +24,6 @@ export { // --------------------------------------------------------------------------- -async function rateVideoRetryWrapper (req: express.Request, res: express.Response, next: express.NextFunction) { - const options = { - arguments: [ req, res ], - errorMessage: 'Cannot update the user video rate.' - } - - await retryTransactionWrapper(rateVideo, options) - - return res.type('json').status(204).end() -} - async function rateVideo (req: express.Request, res: express.Response) { const body: UserVideoRateUpdate = req.body const rateType = body.rating @@ -79,12 +67,12 @@ async function rateVideo (req: express.Request, res: express.Response) { dislikes: dislikesToIncrement } - // Even if we do not own the video we increment the attributes - // It is useful for the user to have a feedback await videoInstance.increment(incrementQuery, sequelizeOptions) await sendVideoRateChange(accountInstance, videoInstance, likesToIncrement, dislikesToIncrement, t) }) logger.info('Account video rate for video %s of account %s updated.', videoInstance.name, accountInstance.name) + + return res.type('json').status(204).end() }