]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/lib/video-channel.ts
2241799737b8c80d97be7d44e4a0f2df4e9c8b07
[github/Chocobozzz/PeerTube.git] / server / lib / video-channel.ts
1 import * as Sequelize from 'sequelize'
2
3 import { addVideoChannelToFriends } from './friends'
4 import { database as db } from '../initializers'
5 import { AuthorInstance } from '../models'
6 import { VideoChannelCreate } from '../../shared/models'
7
8 function createVideoChannel (videoChannelInfo: VideoChannelCreate, author: AuthorInstance, t: Sequelize.Transaction) {
9 let videoChannelUUID = ''
10
11 const videoChannelData = {
12 name: videoChannelInfo.name,
13 description: videoChannelInfo.description,
14 remote: false,
15 authorId: author.id
16 }
17
18 const videoChannel = db.VideoChannel.build(videoChannelData)
19 const options = { transaction: t }
20
21 return videoChannel.save(options)
22 .then(videoChannelCreated => {
23 // Do not forget to add Author information to the created video channel
24 videoChannelCreated.Author = author
25 videoChannelUUID = videoChannelCreated.uuid
26
27 return videoChannelCreated
28 })
29 .then(videoChannel => {
30 const remoteVideoChannel = videoChannel.toAddRemoteJSON()
31
32 // Now we'll add the video channel's meta data to our friends
33 return addVideoChannelToFriends(remoteVideoChannel, t)
34 })
35 .then(() => videoChannelUUID) // Return video channel UUID
36 }
37
38 // ---------------------------------------------------------------------------
39
40 export {
41 createVideoChannel
42 }