aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/controllers/api/users
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-11-18 11:13:01 +0100
committerChocobozzz <me@florianbigard.com>2020-11-18 11:32:57 +0100
commitea3674d04dd0a67962224073256dc7d4173527a5 (patch)
tree7a1936b088509b88157e6493c8fb897f06bd29cb /server/controllers/api/users
parentaa9cf3b98d5db85fefce918bb29840d0cdcb84c4 (diff)
downloadPeerTube-ea3674d04dd0a67962224073256dc7d4173527a5.tar.gz
PeerTube-ea3674d04dd0a67962224073256dc7d4173527a5.tar.zst
PeerTube-ea3674d04dd0a67962224073256dc7d4173527a5.zip
Remove notifications of muted accounts/servers
Diffstat (limited to 'server/controllers/api/users')
-rw-r--r--server/controllers/api/users/my-blocklist.ts14
-rw-r--r--server/controllers/api/users/my-subscriptions.ts3
2 files changed, 17 insertions, 0 deletions
diff --git a/server/controllers/api/users/my-blocklist.ts b/server/controllers/api/users/my-blocklist.ts
index 3a44376f2..6eba22d52 100644
--- a/server/controllers/api/users/my-blocklist.ts
+++ b/server/controllers/api/users/my-blocklist.ts
@@ -20,6 +20,8 @@ import {
20import { AccountBlocklistModel } from '../../../models/account/account-blocklist' 20import { AccountBlocklistModel } from '../../../models/account/account-blocklist'
21import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../../../lib/blocklist' 21import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../../../lib/blocklist'
22import { ServerBlocklistModel } from '../../../models/server/server-blocklist' 22import { ServerBlocklistModel } from '../../../models/server/server-blocklist'
23import { UserNotificationModel } from '@server/models/account/user-notification'
24import { logger } from '@server/helpers/logger'
23 25
24const myBlocklistRouter = express.Router() 26const myBlocklistRouter = express.Router()
25 27
@@ -91,6 +93,12 @@ async function blockAccount (req: express.Request, res: express.Response) {
91 93
92 await addAccountInBlocklist(user.Account.id, accountToBlock.id) 94 await addAccountInBlocklist(user.Account.id, accountToBlock.id)
93 95
96 UserNotificationModel.removeNotificationsOf({
97 id: accountToBlock.id,
98 type: 'account',
99 forUserId: user.id
100 }).catch(err => logger.error('Cannot remove notifications after an account mute.', { err }))
101
94 return res.status(204).end() 102 return res.status(204).end()
95} 103}
96 104
@@ -122,6 +130,12 @@ async function blockServer (req: express.Request, res: express.Response) {
122 130
123 await addServerInBlocklist(user.Account.id, serverToBlock.id) 131 await addServerInBlocklist(user.Account.id, serverToBlock.id)
124 132
133 UserNotificationModel.removeNotificationsOf({
134 id: serverToBlock.id,
135 type: 'server',
136 forUserId: user.id
137 }).catch(err => logger.error('Cannot remove notifications after a server mute.', { err }))
138
125 return res.status(204).end() 139 return res.status(204).end()
126} 140}
127 141
diff --git a/server/controllers/api/users/my-subscriptions.ts b/server/controllers/api/users/my-subscriptions.ts
index b8c234eef..66b33c477 100644
--- a/server/controllers/api/users/my-subscriptions.ts
+++ b/server/controllers/api/users/my-subscriptions.ts
@@ -26,6 +26,7 @@ import {
26} from '../../../middlewares/validators' 26} from '../../../middlewares/validators'
27import { ActorFollowModel } from '../../../models/activitypub/actor-follow' 27import { ActorFollowModel } from '../../../models/activitypub/actor-follow'
28import { VideoModel } from '../../../models/video/video' 28import { VideoModel } from '../../../models/video/video'
29import { sendUndoFollow } from '@server/lib/activitypub/send'
29 30
30const mySubscriptionsRouter = express.Router() 31const mySubscriptionsRouter = express.Router()
31 32
@@ -138,6 +139,8 @@ async function deleteUserSubscription (req: express.Request, res: express.Respon
138 const subscription = res.locals.subscription 139 const subscription = res.locals.subscription
139 140
140 await sequelizeTypescript.transaction(async t => { 141 await sequelizeTypescript.transaction(async t => {
142 if (subscription.state === 'accepted') await sendUndoFollow(subscription, t)
143
141 return subscription.destroy({ transaction: t }) 144 return subscription.destroy({ transaction: t })
142 }) 145 })
143 146