X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-channel.ts;h=c9887c667cea959105df88c5a7976bf581e7fd96;hb=76314386aeafdd6849b7b70c517779d6b2013473;hp=ee0482c3612919b3715eb64aca12e59aa178ef0d;hpb=b6a1dd4d1b3b0032f8b968e72cbd074f646e8827;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-channel.ts b/server/lib/video-channel.ts index ee0482c36..c9887c667 100644 --- a/server/lib/video-channel.ts +++ b/server/lib/video-channel.ts @@ -1,12 +1,18 @@ import * as Sequelize from 'sequelize' -import * as uuidv4 from 'uuid/v4' +import { v4 as uuidv4 } from 'uuid' import { VideoChannelCreate } from '../../shared/models' -import { AccountModel } from '../models/account/account' import { VideoChannelModel } from '../models/video/video-channel' import { buildActorInstance, federateVideoIfNeeded, getVideoChannelActivityPubUrl } from './activitypub' import { VideoModel } from '../models/video/video' +import { MAccountId, MChannelDefault, MChannelId } from '../typings/models' -async function createVideoChannel (videoChannelInfo: VideoChannelCreate, account: AccountModel, t: Sequelize.Transaction) { +type CustomVideoChannelModelAccount = MChannelDefault & { Account?: T } + +async function createLocalVideoChannel ( + videoChannelInfo: VideoChannelCreate, + account: T, + t: Sequelize.Transaction +): Promise> { const uuid = uuidv4() const url = getVideoChannelActivityPubUrl(videoChannelInfo.name) const actorInstance = buildActorInstance('Group', url, videoChannelInfo.name, uuid) @@ -21,10 +27,10 @@ async function createVideoChannel (videoChannelInfo: VideoChannelCreate, account actorId: actorInstanceCreated.id } - const videoChannel = VideoChannelModel.build(videoChannelData) + const videoChannel = new VideoChannelModel(videoChannelData) const options = { transaction: t } - const videoChannelCreated = await videoChannel.save(options) + const videoChannelCreated: CustomVideoChannelModelAccount = await videoChannel.save(options) as MChannelDefault // Do not forget to add Account/Actor information to the created video channel videoChannelCreated.Account = account @@ -34,7 +40,7 @@ async function createVideoChannel (videoChannelInfo: VideoChannelCreate, account return videoChannelCreated } -async function federateAllVideosOfChannel (videoChannel: VideoChannelModel) { +async function federateAllVideosOfChannel (videoChannel: MChannelId) { const videoIds = await VideoModel.getAllIdsFromChannel(videoChannel) for (const videoId of videoIds) { @@ -47,6 +53,6 @@ async function federateAllVideosOfChannel (videoChannel: VideoChannelModel) { // --------------------------------------------------------------------------- export { - createVideoChannel, + createLocalVideoChannel, federateAllVideosOfChannel }