From 571389d43b8fc8aaf27e77c06f19b320b08dbbc9 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 10 Nov 2017 17:27:49 +0100 Subject: Make it compile at least --- server/controllers/api/videos/abuse.ts | 4 +- server/controllers/api/videos/channel.ts | 37 +++++--------- server/controllers/api/videos/index.ts | 88 +++++++++++--------------------- server/controllers/api/videos/rate.ts | 80 ++++++----------------------- 4 files changed, 59 insertions(+), 150 deletions(-) (limited to 'server/controllers/api/videos') diff --git a/server/controllers/api/videos/abuse.ts b/server/controllers/api/videos/abuse.ts index 04349042b..7a3471116 100644 --- a/server/controllers/api/videos/abuse.ts +++ b/server/controllers/api/videos/abuse.ts @@ -1,7 +1,6 @@ import * as express from 'express' import { database as db } from '../../../initializers/database' -import * as friends from '../../../lib/friends' import { logger, getFormattedObjects, @@ -84,7 +83,8 @@ async function reportVideoAbuse (req: express.Request, res: express.Response) { videoUUID: videoInstance.uuid } - await friends.reportAbuseVideoToFriend(reportData, videoInstance, t) + // await friends.reportAbuseVideoToFriend(reportData, videoInstance, t) + // TODO: send abuse to origin pod } }) diff --git a/server/controllers/api/videos/channel.ts b/server/controllers/api/videos/channel.ts index 4d1f03903..656bc3129 100644 --- a/server/controllers/api/videos/channel.ts +++ b/server/controllers/api/videos/channel.ts @@ -1,31 +1,23 @@ import * as express from 'express' - +import { VideoChannelCreate, VideoChannelUpdate } from '../../../../shared' +import { getFormattedObjects, logger, resetSequelizeInstance, retryTransactionWrapper } from '../../../helpers' import { database as db } from '../../../initializers' +import { createVideoChannel } from '../../../lib' import { - logger, - getFormattedObjects, - retryTransactionWrapper, - resetSequelizeInstance -} from '../../../helpers' -import { + asyncMiddleware, authenticate, + listVideoAccountChannelsValidator, paginationValidator, - videoChannelsSortValidator, - videoChannelsAddValidator, - setVideoChannelsSort, setPagination, - videoChannelsRemoveValidator, + setVideoChannelsSort, videoChannelGetValidator, - videoChannelsUpdateValidator, - listVideoAccountChannelsValidator, - asyncMiddleware + videoChannelsAddValidator, + videoChannelsRemoveValidator, + videoChannelsSortValidator, + videoChannelsUpdateValidator } from '../../../middlewares' -import { - createVideoChannel, - updateVideoChannelToFriends -} from '../../../lib' -import { VideoChannelInstance, AccountInstance } from '../../../models' -import { VideoChannelCreate, VideoChannelUpdate } from '../../../../shared' +import { AccountInstance, VideoChannelInstance } from '../../../models' +import { sendUpdateVideoChannel } from '../../../lib/activitypub/send-request' const videoChannelRouter = express.Router() @@ -137,11 +129,8 @@ async function updateVideoChannel (req: express.Request, res: express.Response) if (videoChannelInfoToUpdate.description !== undefined) videoChannelInstance.set('description', videoChannelInfoToUpdate.description) await videoChannelInstance.save(sequelizeOptions) - const json = videoChannelInstance.toUpdateRemoteJSON() - - // Now we'll update the video channel's meta data to our friends - return updateVideoChannelToFriends(json, t) + await sendUpdateVideoChannel(videoChannelInstance, t) }) logger.info('Video channel with name %s and uuid %s updated.', videoChannelInstance.name, videoChannelInstance.uuid) diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts index 9ad84609f..063839223 100644 --- a/server/controllers/api/videos/index.ts +++ b/server/controllers/api/videos/index.ts @@ -1,57 +1,41 @@ import * as express from 'express' import * as multer from 'multer' import { extname, join } from 'path' - -import { database as db } from '../../../initializers/database' +import { VideoCreate, VideoPrivacy, VideoUpdate } from '../../../../shared' import { - CONFIG, - REQUEST_VIDEO_QADU_TYPES, - REQUEST_VIDEO_EVENT_TYPES, - VIDEO_CATEGORIES, - VIDEO_LICENCES, - VIDEO_LANGUAGES, - VIDEO_PRIVACIES, - VIDEO_MIMETYPE_EXT -} from '../../../initializers' -import { - addEventToRemoteVideo, - quickAndDirtyUpdateVideoToFriends, - addVideoToFriends, - updateVideoToFriends, - JobScheduler, - fetchRemoteDescription -} from '../../../lib' + fetchRemoteVideoDescription, + generateRandomString, + getFormattedObjects, + getVideoFileHeight, + logger, + renamePromise, + resetSequelizeInstance, + retryTransactionWrapper +} from '../../../helpers' +import { getActivityPubUrl } from '../../../helpers/activitypub' +import { CONFIG, VIDEO_CATEGORIES, VIDEO_LANGUAGES, VIDEO_LICENCES, VIDEO_MIMETYPE_EXT, VIDEO_PRIVACIES } from '../../../initializers' +import { database as db } from '../../../initializers/database' +import { sendAddVideo, sendUpdateVideoChannel } from '../../../lib/activitypub/send-request' +import { transcodingJobScheduler } from '../../../lib/jobs/transcoding-job-scheduler/transcoding-job-scheduler' import { + asyncMiddleware, authenticate, paginationValidator, - videosSortValidator, - setVideosSort, setPagination, setVideosSearch, - videosUpdateValidator, - videosSearchValidator, + setVideosSort, videosAddValidator, videosGetValidator, videosRemoveValidator, - asyncMiddleware + videosSearchValidator, + videosSortValidator, + videosUpdateValidator } from '../../../middlewares' -import { - logger, - retryTransactionWrapper, - generateRandomString, - getFormattedObjects, - renamePromise, - getVideoFileHeight, - resetSequelizeInstance -} from '../../../helpers' import { VideoInstance } from '../../../models' -import { VideoCreate, VideoUpdate, VideoPrivacy } from '../../../../shared' - import { abuseVideoRouter } from './abuse' import { blacklistRouter } from './blacklist' -import { rateVideoRouter } from './rate' import { videoChannelRouter } from './channel' -import { getActivityPubUrl } from '../../../helpers/activitypub' +import { rateVideoRouter } from './rate' const videosRouter = express.Router() @@ -225,7 +209,7 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi } tasks.push( - JobScheduler.Instance.createJob(t, 'videoFileOptimizer', dataInput) + transcodingJobScheduler.createJob(t, 'videoFileOptimizer', dataInput) ) } await Promise.all(tasks) @@ -252,9 +236,7 @@ async function addVideo (req: express.Request, res: express.Response, videoPhysi // Don't send video to remote pods, it is private if (video.privacy === VideoPrivacy.PRIVATE) return undefined - const remoteVideo = await video.toAddRemoteJSON() - // Now we'll add the video's meta data to our friends - return addVideoToFriends(remoteVideo, t) + await sendAddVideo(video, t) }) logger.info('Video with name %s and uuid %s created.', videoInfo.name, videoUUID) @@ -302,14 +284,12 @@ async function updateVideo (req: express.Request, res: express.Response) { // Now we'll update the video's meta data to our friends if (wasPrivateVideo === false) { - const json = videoInstance.toUpdateRemoteJSON() - return updateVideoToFriends(json, t) + await sendUpdateVideoChannel(videoInstance, t) } // Video is not private anymore, send a create action to remote pods if (wasPrivateVideo === true && videoInstance.privacy !== VideoPrivacy.PRIVATE) { - const remoteVideo = await videoInstance.toAddRemoteJSON() - return addVideoToFriends(remoteVideo, t) + await sendAddVideo(videoInstance, t) } }) @@ -324,7 +304,7 @@ async function updateVideo (req: express.Request, res: express.Response) { } } -function getVideo (req: express.Request, res: express.Response) { +async function getVideo (req: express.Request, res: express.Response) { const videoInstance = res.locals.video if (videoInstance.isOwned()) { @@ -333,21 +313,11 @@ function getVideo (req: express.Request, res: express.Response) { // For example, only add a view when a user watch a video during 30s etc videoInstance.increment('views') .then(() => { - const qaduParams = { - videoId: videoInstance.id, - type: REQUEST_VIDEO_QADU_TYPES.VIEWS - } - return quickAndDirtyUpdateVideoToFriends(qaduParams) + // TODO: send to followers a notification }) .catch(err => logger.error('Cannot add view to video %s.', videoInstance.uuid, err)) } else { - // Just send the event to our friends - const eventParams = { - videoId: videoInstance.id, - type: REQUEST_VIDEO_EVENT_TYPES.VIEWS - } - addEventToRemoteVideo(eventParams) - .catch(err => logger.error('Cannot add event to remote video %s.', videoInstance.uuid, err)) + // TODO: send view event to followers } // Do not wait the view system @@ -361,7 +331,7 @@ async function getVideoDescription (req: express.Request, res: express.Response) if (videoInstance.isOwned()) { description = videoInstance.description } else { - description = await fetchRemoteDescription(videoInstance) + description = await fetchRemoteVideoDescription(videoInstance) } return res.json({ description }) diff --git a/server/controllers/api/videos/rate.ts b/server/controllers/api/videos/rate.ts index 727984506..955277d25 100644 --- a/server/controllers/api/videos/rate.ts +++ b/server/controllers/api/videos/rate.ts @@ -1,25 +1,11 @@ import * as express from 'express' - -import { database as db } from '../../../initializers/database' -import { - logger, - retryTransactionWrapper -} from '../../../helpers' -import { - VIDEO_RATE_TYPES, - REQUEST_VIDEO_EVENT_TYPES, - REQUEST_VIDEO_QADU_TYPES -} from '../../../initializers' -import { - addEventsToRemoteVideo, - quickAndDirtyUpdatesVideoToFriends -} from '../../../lib' -import { - authenticate, - videoRateValidator, - asyncMiddleware -} from '../../../middlewares' import { UserVideoRateUpdate } from '../../../../shared' +import { logger, retryTransactionWrapper } from '../../../helpers' +import { VIDEO_RATE_TYPES } from '../../../initializers' +import { database as db } from '../../../initializers/database' +import { asyncMiddleware, authenticate, videoRateValidator } from '../../../middlewares' +import { AccountInstance } from '../../../models/account/account-interface' +import { VideoInstance } from '../../../models/video/video-interface' const rateVideoRouter = express.Router() @@ -51,12 +37,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 = res.locals.video - const userInstance = res.locals.oauth.token.User + const videoInstance: VideoInstance = res.locals.video + const accountInstance: AccountInstance = res.locals.oauth.token.User.Account await db.sequelize.transaction(async t => { const sequelizeOptions = { transaction: t } - const previousRate = await db.UserVideoRate.load(userInstance.id, videoInstance.id, t) + const previousRate = await db.AccountVideoRate.load(accountInstance.id, videoInstance.id, t) let likesToIncrement = 0 let dislikesToIncrement = 0 @@ -79,12 +65,12 @@ async function rateVideo (req: express.Request, res: express.Response) { } } else if (rateType !== 'none') { // There was not a previous rate, insert a new one if there is a rate const query = { - userId: userInstance.id, + accountId: accountInstance.id, videoId: videoInstance.id, type: rateType } - await db.UserVideoRate.create(query, sequelizeOptions) + await db.AccountVideoRate.create(query, sequelizeOptions) } const incrementQuery = { @@ -96,48 +82,12 @@ async function rateVideo (req: express.Request, res: express.Response) { // It is useful for the user to have a feedback await videoInstance.increment(incrementQuery, sequelizeOptions) - // Send a event to original pod if (videoInstance.isOwned() === false) { - - const eventsParams = [] - - if (likesToIncrement !== 0) { - eventsParams.push({ - videoId: videoInstance.id, - type: REQUEST_VIDEO_EVENT_TYPES.LIKES, - count: likesToIncrement - }) - } - - if (dislikesToIncrement !== 0) { - eventsParams.push({ - videoId: videoInstance.id, - type: REQUEST_VIDEO_EVENT_TYPES.DISLIKES, - count: dislikesToIncrement - }) - } - - await addEventsToRemoteVideo(eventsParams, t) - } else { // We own the video, we need to send a quick and dirty update to friends to notify the counts changed - const qadusParams = [] - - if (likesToIncrement !== 0) { - qadusParams.push({ - videoId: videoInstance.id, - type: REQUEST_VIDEO_QADU_TYPES.LIKES - }) - } - - if (dislikesToIncrement !== 0) { - qadusParams.push({ - videoId: videoInstance.id, - type: REQUEST_VIDEO_QADU_TYPES.DISLIKES - }) - } - - await quickAndDirtyUpdatesVideoToFriends(qadusParams, t) + // TODO: Send a event to original pod + } else { + // TODO: Send update to followers } }) - logger.info('User video rate for video %s of user %s updated.', videoInstance.name, userInstance.username) + logger.info('Account video rate for video %s of account %s updated.', videoInstance.name, accountInstance.name) } -- cgit v1.2.3