X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fvideo-rates.ts;h=cda5b2981da1d523d7f3b249f40f3ff03abaf580;hb=5224c394b3bbac6ec1543e41fa0ec6db436e84fa;hp=7aac7911841e24fc05a4dcd875b07a14037499c4;hpb=88108880bbdba473cfe36ecbebc1c3c4f972e102;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/video-rates.ts b/server/lib/activitypub/video-rates.ts index 7aac79118..cda5b2981 100644 --- a/server/lib/activitypub/video-rates.ts +++ b/server/lib/activitypub/video-rates.ts @@ -7,7 +7,7 @@ import * as Bluebird from 'bluebird' import { getOrCreateActorAndServerAndModel } from './actor' import { AccountVideoRateModel } from '../../models/account/account-video-rate' import { logger } from '../../helpers/logger' -import { CRAWL_REQUEST_CONCURRENCY } from '../../initializers' +import { CRAWL_REQUEST_CONCURRENCY } from '../../initializers/constants' import { doRequest } from '../../helpers/requests' import { checkUrlsSameHost, getAPId } from '../../helpers/activitypub' import { ActorModel } from '../../models/activitypub/actor' @@ -38,19 +38,14 @@ async function createRates (ratesUrl: string[], video: VideoModel, rate: VideoRa const actor = await getOrCreateActorAndServerAndModel(actorUrl) - const [ , created ] = await AccountVideoRateModel - .findOrCreate({ - where: { - videoId: video.id, - accountId: actor.Account.id - }, - defaults: { - videoId: video.id, - accountId: actor.Account.id, - type: rate, - url: body.id - } - }) + const entry = { + videoId: video.id, + accountId: actor.Account.id, + type: rate, + url: body.id + } + + const created = await AccountVideoRateModel.upsert(entry) if (created) rateCounts += 1 } catch (err) { @@ -61,7 +56,10 @@ async function createRates (ratesUrl: string[], video: VideoModel, rate: VideoRa logger.info('Adding %d %s to video %s.', rateCounts, rate, video.uuid) // This is "likes" and "dislikes" - if (rateCounts !== 0) await video.increment(rate + 's', { by: rateCounts }) + if (rateCounts !== 0) { + const field = rate === 'like' ? 'likes' : 'dislikes' + await video.increment(field, { by: rateCounts }) + } return }