X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-comment.ts;h=70ba7c3039cd947c3636d65d64418e80f810d111;hb=47d0b3ee611d1ae85c92149521619ebdf5f5cc25;hp=e3fe26e355d2d8851b0bdf3a5697ed0ab5a0263c;hpb=d3ea89759104e6c14b00443526f2c2a0a13aeb97;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-comment.ts b/server/lib/video-comment.ts index e3fe26e35..70ba7c303 100644 --- a/server/lib/video-comment.ts +++ b/server/lib/video-comment.ts @@ -1,37 +1,45 @@ import * as Sequelize from 'sequelize' import { ResultList } from '../../shared/models' import { VideoCommentThreadTree } from '../../shared/models/videos/video-comment.model' +import { AccountModel } from '../models/account/account' import { VideoModel } from '../models/video/video' import { VideoCommentModel } from '../models/video/video-comment' import { getVideoCommentActivityPubUrl } from './activitypub' +import { sendCreateVideoComment } from './activitypub/send' async function createVideoComment (obj: { text: string, - inReplyToCommentId: number, + inReplyToComment: VideoCommentModel | null, video: VideoModel - accountId: number + account: AccountModel }, t: Sequelize.Transaction) { - let originCommentId: number = null + let originCommentId: number | null = null + let inReplyToCommentId: number | null = null - if (obj.inReplyToCommentId) { - const repliedComment = await VideoCommentModel.loadById(obj.inReplyToCommentId) - if (!repliedComment) throw new Error('Unknown replied comment.') - - originCommentId = repliedComment.originCommentId || repliedComment.id + if (obj.inReplyToComment && obj.inReplyToComment !== null) { + originCommentId = obj.inReplyToComment.originCommentId || obj.inReplyToComment.id + inReplyToCommentId = obj.inReplyToComment.id } const comment = await VideoCommentModel.create({ text: obj.text, originCommentId, - inReplyToCommentId: obj.inReplyToCommentId, + inReplyToCommentId, videoId: obj.video.id, - accountId: obj.accountId, + accountId: obj.account.id, url: 'fake url' }, { transaction: t, validate: false }) comment.set('url', getVideoCommentActivityPubUrl(obj.video, comment)) - return comment.save({ transaction: t }) + const savedComment = await comment.save({ transaction: t }) + savedComment.InReplyToVideoComment = obj.inReplyToComment + savedComment.Video = obj.video + savedComment.Account = obj.account + + await sendCreateVideoComment(savedComment, t) + + return savedComment } function buildFormattedCommentTree (resultList: ResultList): VideoCommentThreadTree {