aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/activitypub/process/process-undo.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/activitypub/process/process-undo.ts')
-rw-r--r--server/lib/activitypub/process/process-undo.ts37
1 files changed, 20 insertions, 17 deletions
diff --git a/server/lib/activitypub/process/process-undo.ts b/server/lib/activitypub/process/process-undo.ts
index cc221045f..efa63122b 100644
--- a/server/lib/activitypub/process/process-undo.ts
+++ b/server/lib/activitypub/process/process-undo.ts
@@ -1,8 +1,11 @@
1import { ActivityFollow, ActivityLike, ActivityUndo } from '../../../../shared/models/activitypub/activity' 1import { ActivityFollow, ActivityLike, ActivityUndo } from '../../../../shared/models/activitypub'
2import { DislikeObject } from '../../../../shared/models/activitypub/objects/dislike-object' 2import { DislikeObject } from '../../../../shared/models/activitypub/objects'
3import { retryTransactionWrapper } from '../../../helpers/database-utils' 3import { logger, retryTransactionWrapper } from '../../../helpers'
4import { logger } from '../../../helpers/logger' 4import { sequelizeTypescript } from '../../../initializers'
5import { database as db } from '../../../initializers' 5import { AccountModel } from '../../../models/account/account'
6import { AccountFollowModel } from '../../../models/account/account-follow'
7import { AccountVideoRateModel } from '../../../models/account/account-video-rate'
8import { VideoModel } from '../../../models/video/video'
6import { forwardActivity } from '../send/misc' 9import { forwardActivity } from '../send/misc'
7 10
8async function processUndoActivity (activity: ActivityUndo) { 11async function processUndoActivity (activity: ActivityUndo) {
@@ -41,14 +44,14 @@ function processUndoLike (actor: string, activity: ActivityUndo) {
41function undoLike (actor: string, activity: ActivityUndo) { 44function undoLike (actor: string, activity: ActivityUndo) {
42 const likeActivity = activity.object as ActivityLike 45 const likeActivity = activity.object as ActivityLike
43 46
44 return db.sequelize.transaction(async t => { 47 return sequelizeTypescript.transaction(async t => {
45 const byAccount = await db.Account.loadByUrl(actor, t) 48 const byAccount = await AccountModel.loadByUrl(actor, t)
46 if (!byAccount) throw new Error('Unknown account ' + actor) 49 if (!byAccount) throw new Error('Unknown account ' + actor)
47 50
48 const video = await db.Video.loadByUrlAndPopulateAccount(likeActivity.object, t) 51 const video = await VideoModel.loadByUrlAndPopulateAccount(likeActivity.object, t)
49 if (!video) throw new Error('Unknown video ' + likeActivity.actor) 52 if (!video) throw new Error('Unknown video ' + likeActivity.actor)
50 53
51 const rate = await db.AccountVideoRate.load(byAccount.id, video.id, t) 54 const rate = await AccountVideoRateModel.load(byAccount.id, video.id, t)
52 if (!rate) throw new Error(`Unknown rate by account ${byAccount.id} for video ${video.id}.`) 55 if (!rate) throw new Error(`Unknown rate by account ${byAccount.id} for video ${video.id}.`)
53 56
54 await rate.destroy({ transaction: t }) 57 await rate.destroy({ transaction: t })
@@ -74,14 +77,14 @@ function processUndoDislike (actor: string, activity: ActivityUndo) {
74function undoDislike (actor: string, activity: ActivityUndo) { 77function undoDislike (actor: string, activity: ActivityUndo) {
75 const dislike = activity.object.object as DislikeObject 78 const dislike = activity.object.object as DislikeObject
76 79
77 return db.sequelize.transaction(async t => { 80 return sequelizeTypescript.transaction(async t => {
78 const byAccount = await db.Account.loadByUrl(actor, t) 81 const byAccount = await AccountModel.loadByUrl(actor, t)
79 if (!byAccount) throw new Error('Unknown account ' + actor) 82 if (!byAccount) throw new Error('Unknown account ' + actor)
80 83
81 const video = await db.Video.loadByUrlAndPopulateAccount(dislike.object, t) 84 const video = await VideoModel.loadByUrlAndPopulateAccount(dislike.object, t)
82 if (!video) throw new Error('Unknown video ' + dislike.actor) 85 if (!video) throw new Error('Unknown video ' + dislike.actor)
83 86
84 const rate = await db.AccountVideoRate.load(byAccount.id, video.id, t) 87 const rate = await AccountVideoRateModel.load(byAccount.id, video.id, t)
85 if (!rate) throw new Error(`Unknown rate by account ${byAccount.id} for video ${video.id}.`) 88 if (!rate) throw new Error(`Unknown rate by account ${byAccount.id} for video ${video.id}.`)
86 89
87 await rate.destroy({ transaction: t }) 90 await rate.destroy({ transaction: t })
@@ -105,10 +108,10 @@ function processUndoFollow (actor: string, followActivity: ActivityFollow) {
105} 108}
106 109
107function undoFollow (actor: string, followActivity: ActivityFollow) { 110function undoFollow (actor: string, followActivity: ActivityFollow) {
108 return db.sequelize.transaction(async t => { 111 return sequelizeTypescript.transaction(async t => {
109 const follower = await db.Account.loadByUrl(actor, t) 112 const follower = await AccountModel.loadByUrl(actor, t)
110 const following = await db.Account.loadByUrl(followActivity.object, t) 113 const following = await AccountModel.loadByUrl(followActivity.object, t)
111 const accountFollow = await db.AccountFollow.loadByAccountAndTarget(follower.id, following.id, t) 114 const accountFollow = await AccountFollowModel.loadByAccountAndTarget(follower.id, following.id, t)
112 115
113 if (!accountFollow) throw new Error(`'Unknown account follow ${follower.id} -> ${following.id}.`) 116 if (!accountFollow) throw new Error(`'Unknown account follow ${follower.id} -> ${following.id}.`)
114 117