Correctly forward like/dislikes and undo
[oweals/peertube.git] / server / lib / activitypub / share.ts
1 import { Transaction } from 'sequelize'
2 import { getServerAccount } from '../../helpers/utils'
3 import { database as db } from '../../initializers'
4 import { VideoChannelInstance } from '../../models/index'
5 import { VideoInstance } from '../../models/video/video-interface'
6 import { sendVideoAnnounce, sendVideoChannelAnnounce } from './send/send-announce'
7
8 async function shareVideoChannelByServer (videoChannel: VideoChannelInstance, t: Transaction) {
9   const serverAccount = await getServerAccount()
10
11   await db.VideoChannelShare.create({
12     accountId: serverAccount.id,
13     videoChannelId: videoChannel.id
14   }, { transaction: t })
15
16   return sendVideoChannelAnnounce(serverAccount, videoChannel, t)
17 }
18
19 async function shareVideoByServer (video: VideoInstance, t: Transaction) {
20   const serverAccount = await getServerAccount()
21
22   await db.VideoShare.create({
23     accountId: serverAccount.id,
24     videoId: video.id
25   }, { transaction: t })
26
27   return sendVideoAnnounce(serverAccount, video, t)
28 }
29
30 export {
31   shareVideoChannelByServer,
32   shareVideoByServer
33 }