mirror of https://github.com/Chocobozzz/PeerTube
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
|
import * as Sequelize from 'sequelize'
|
||
|
|
||
|
import { addVideoChannelToFriends } from './friends'
|
||
|
import { database as db } from '../initializers'
|
||
|
import { AuthorInstance } from '../models'
|
||
|
import { VideoChannelCreate } from '../../shared/models'
|
||
|
|
||
|
function createVideoChannel (videoChannelInfo: VideoChannelCreate, author: AuthorInstance, t: Sequelize.Transaction) {
|
||
|
let videoChannelUUID = ''
|
||
|
|
||
|
const videoChannelData = {
|
||
|
name: videoChannelInfo.name,
|
||
|
description: videoChannelInfo.description,
|
||
|
remote: false,
|
||
|
authorId: author.id
|
||
|
}
|
||
|
|
||
|
const videoChannel = db.VideoChannel.build(videoChannelData)
|
||
|
const options = { transaction: t }
|
||
|
|
||
|
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
|
||
|
}
|
||
|
|
||
|
// ---------------------------------------------------------------------------
|
||
|
|
||
|
export {
|
||
|
createVideoChannel
|
||
|
}
|