+ if (actorUrl && checkUrlsSameHost(url, actorUrl) !== true) {
+ throw new Error(`Actor url ${actorUrl} has not the same host than the comment url ${url}`)
+ }
+
+ if (checkUrlsSameHost(body.id, url) !== true) {
+ throw new Error(`Comment url ${url} host is different from the AP object id ${body.id}`)
+ }
+
+ const actor = actorUrl
+ ? await getOrCreateActorAndServerAndModel(actorUrl, 'all')
+ : null
+
+ const comment = new VideoCommentModel({
+ url: body.id,
+ text: body.content ? body.content : '',
+ videoId: null,
+ accountId: actor ? actor.Account.id : null,
+ inReplyToCommentId: null,
+ originCommentId: null,
+ createdAt: new Date(body.published),
+ updatedAt: new Date(body.updated),
+ deletedAt: body.deleted ? new Date(body.deleted) : null
+ }) as MCommentOwner
+ comment.Account = actor ? actor.Account : null
+
+ return resolveThread({
+ url: body.inReplyTo,
+ comments: comments.concat([ comment ]),
+ commentCreated: true
+ })