X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-channel.ts;h=0fe95ca0986d41fc863ea6afb2f8f60daee37751;hb=3f6b6a565dc98a658ec9d8f697252788c0faa46d;hp=2241799737b8c80d97be7d44e4a0f2df4e9c8b07;hpb=72c7248b6fdcdb2175e726ff51b42e7555f2bd84;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-channel.ts b/server/lib/video-channel.ts index 224179973..0fe95ca09 100644 --- a/server/lib/video-channel.ts +++ b/server/lib/video-channel.ts @@ -1,38 +1,36 @@ import * as Sequelize from 'sequelize' - -import { addVideoChannelToFriends } from './friends' -import { database as db } from '../initializers' -import { AuthorInstance } from '../models' +import * as uuidv4 from 'uuid/v4' import { VideoChannelCreate } from '../../shared/models' +import { AccountModel } from '../models/account/account' +import { VideoChannelModel } from '../models/video/video-channel' +import { buildActorInstance, getVideoChannelActivityPubUrl } from './activitypub' + +async function createVideoChannel (videoChannelInfo: VideoChannelCreate, account: AccountModel, t: Sequelize.Transaction) { + const uuid = uuidv4() + const url = getVideoChannelActivityPubUrl(videoChannelInfo.name) + const actorInstance = buildActorInstance('Group', url, videoChannelInfo.name, uuid) -function createVideoChannel (videoChannelInfo: VideoChannelCreate, author: AuthorInstance, t: Sequelize.Transaction) { - let videoChannelUUID = '' + const actorInstanceCreated = await actorInstance.save({ transaction: t }) const videoChannelData = { - name: videoChannelInfo.name, + name: videoChannelInfo.displayName, description: videoChannelInfo.description, - remote: false, - authorId: author.id + support: videoChannelInfo.support, + accountId: account.id, + actorId: actorInstanceCreated.id } - const videoChannel = db.VideoChannel.build(videoChannelData) + const videoChannel = VideoChannelModel.build(videoChannelData) + const options = { transaction: t } + const videoChannelCreated = await videoChannel.save(options) + + // Do not forget to add Account/Actor information to the created video channel + videoChannelCreated.Account = account + videoChannelCreated.Actor = actorInstanceCreated - return videoChannel.save(options) - .then(videoChannelCreated => { - // Do not forget to add Author information to the created video channel - videoChannelCreated.Author = author - videoChannelUUID = videoChannelCreated.uuid - - return videoChannelCreated - }) - .then(videoChannel => { - const remoteVideoChannel = videoChannel.toAddRemoteJSON() - - // Now we'll add the video channel's meta data to our friends - return addVideoChannelToFriends(remoteVideoChannel, t) - }) - .then(() => videoChannelUUID) // Return video channel UUID + // No need to seed this empty video channel to followers + return videoChannelCreated } // ---------------------------------------------------------------------------