]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/users/my-subscriptions.ts
Set actor preferred name case insensitive
[github/Chocobozzz/PeerTube.git] / server / controllers / api / users / my-subscriptions.ts
index fb1f6863513441b862a5e1bac1f2a2ad0d8b61a2..6e2aa371108a9b97b11db69f49b29b0fefb4f2a0 100644 (file)
@@ -30,6 +30,7 @@ import {
 } from '../../../middlewares/validators'
 import { ActorFollowModel } from '../../../models/actor/actor-follow'
 import { VideoModel } from '../../../models/video/video'
+import { Hooks } from '@server/lib/plugins/hooks'
 
 const mySubscriptionsRouter = express.Router()
 
@@ -98,7 +99,7 @@ async function areSubscriptionsExist (req: express.Request, res: express.Respons
     const obj = results.find(r => {
       const server = r.ActorFollowing.Server
 
-      return r.ActorFollowing.preferredUsername === sanitizedHandle.name &&
+      return r.ActorFollowing.preferredUsername.toLowerCase() === sanitizedHandle.name.toLowerCase() &&
         (
           (!server && !sanitizedHandle.host) ||
           (server.host === sanitizedHandle.host)
@@ -122,7 +123,7 @@ function addUserSubscription (req: express.Request, res: express.Response) {
     followerActorId: user.Account.Actor.id
   }
 
-  JobQueue.Instance.createJob({ type: 'activitypub-follow', payload })
+  JobQueue.Instance.createJobAsync({ type: 'activitypub-follow', payload })
 
   return res.status(HttpStatusCode.NO_CONTENT_204).end()
 }
@@ -138,7 +139,9 @@ async function deleteUserSubscription (req: express.Request, res: express.Respon
   const subscription = res.locals.subscription
 
   await sequelizeTypescript.transaction(async t => {
-    if (subscription.state === 'accepted') await sendUndoFollow(subscription, t)
+    if (subscription.state === 'accepted') {
+      sendUndoFollow(subscription, t)
+    }
 
     return subscription.destroy({ transaction: t })
   })
@@ -168,7 +171,7 @@ async function getUserSubscriptionVideos (req: express.Request, res: express.Res
   const countVideos = getCountVideos(req)
   const query = pickCommonVideoQuery(req.query)
 
-  const resultList = await VideoModel.listForApi({
+  const apiOptions = await Hooks.wrapObject({
     ...query,
 
     displayOnlyForFollower: {
@@ -178,7 +181,13 @@ async function getUserSubscriptionVideos (req: express.Request, res: express.Res
     nsfw: buildNSFWFilter(res, query.nsfw),
     user,
     countVideos
-  })
+  }, 'filter:api.user.me.subscription-videos.list.params')
+
+  const resultList = await Hooks.wrapPromiseFun(
+    VideoModel.listForApi,
+    apiOptions,
+    'filter:api.user.me.subscription-videos.list.result'
+  )
 
   return res.json(getFormattedObjects(resultList.data, resultList.total, guessAdditionalAttributesFromQuery(query)))
 }