X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Fcontrollers%2Fapi%2Fvideos%2Frate.ts;h=23e9de9f3577f5686dd52964082d085dd426083d;hb=07197db4c567f22bbc9c12339062896dc76bac2f;hp=c27c611161dcb2fcb332da8ecb11901931b4aaca;hpb=25ed141c7c7631ef21d8764c1163fbf8a6591391;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/videos/rate.ts b/server/controllers/api/videos/rate.ts index c27c61116..23e9de9f3 100644 --- a/server/controllers/api/videos/rate.ts +++ b/server/controllers/api/videos/rate.ts @@ -1,12 +1,13 @@ import * as express from 'express' import { UserVideoRateUpdate } from '../../../../shared' -import { logger, retryTransactionWrapper } from '../../../helpers' -import { VIDEO_RATE_TYPES } from '../../../initializers' -import { database as db } from '../../../initializers/database' -import { sendVideoRateChangeToFollowers, sendVideoRateChangeToOrigin } from '../../../lib/activitypub/videos' +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 { AccountInstance } from '../../../models/account/account-interface' -import { VideoInstance } from '../../../models/video/video-interface' +import { AccountModel } from '../../../models/account/account' +import { AccountVideoRateModel } from '../../../models/account/account-video-rate' +import { VideoModel } from '../../../models/video/video' const rateVideoRouter = express.Router() @@ -38,12 +39,12 @@ async function rateVideoRetryWrapper (req: express.Request, res: express.Respons async function rateVideo (req: express.Request, res: express.Response) { const body: UserVideoRateUpdate = req.body const rateType = body.rating - const videoInstance: VideoInstance = res.locals.video - const accountInstance: AccountInstance = res.locals.oauth.token.User.Account + const videoInstance: VideoModel = res.locals.video + const accountInstance: AccountModel = res.locals.oauth.token.User.Account - await db.sequelize.transaction(async t => { + await sequelizeTypescript.transaction(async t => { const sequelizeOptions = { transaction: t } - const previousRate = await db.AccountVideoRate.load(accountInstance.id, videoInstance.id, t) + const previousRate = await AccountVideoRateModel.load(accountInstance.id, videoInstance.id, t) let likesToIncrement = 0 let dislikesToIncrement = 0 @@ -61,7 +62,6 @@ async function rateVideo (req: express.Request, res: express.Response) { await previousRate.destroy({ transaction: t }) } else { // Update previous rate previousRate.type = rateType - await previousRate.save({ transaction: t }) } } else if (rateType !== 'none') { // There was not a previous rate, insert a new one if there is a rate @@ -71,7 +71,7 @@ async function rateVideo (req: express.Request, res: express.Response) { type: rateType } - await db.AccountVideoRate.create(query, sequelizeOptions) + await AccountVideoRateModel.create(query, sequelizeOptions) } const incrementQuery = { @@ -83,11 +83,7 @@ async function rateVideo (req: express.Request, res: express.Response) { // It is useful for the user to have a feedback await videoInstance.increment(incrementQuery, sequelizeOptions) - if (videoInstance.isOwned()) { - await sendVideoRateChangeToFollowers(accountInstance, videoInstance, likesToIncrement, dislikesToIncrement, t) - } else { - await sendVideoRateChangeToOrigin(accountInstance, videoInstance, likesToIncrement, dislikesToIncrement, t) - } + await sendVideoRateChange(accountInstance, videoInstance, likesToIncrement, dislikesToIncrement, t) }) logger.info('Account video rate for video %s of account %s updated.', videoInstance.name, accountInstance.name)