]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix channels list count
authorChocobozzz <me@florianbigard.com>
Mon, 21 Mar 2022 08:26:48 +0000 (09:26 +0100)
committerChocobozzz <me@florianbigard.com>
Mon, 21 Mar 2022 08:26:48 +0000 (09:26 +0100)
server/models/video/video-channel.ts
server/tests/api/videos/video-channels.ts

index 410fd6d3f777c4e15c2bb0f509eb2012eb0210de..00ae58c68cba89fae24088b626353b16bd4d34cc 100644 (file)
@@ -143,28 +143,28 @@ export type SummaryOptions = {
       })
     }
 
       })
     }
 
-    const channelInclude: Includeable[] = []
-    const accountInclude: Includeable[] = []
+    const channelActorInclude: Includeable[] = []
+    const accountActorInclude: Includeable[] = []
 
     if (options.forCount !== true) {
 
     if (options.forCount !== true) {
-      accountInclude.push({
+      accountActorInclude.push({
         model: ServerModel,
         required: false
       })
 
         model: ServerModel,
         required: false
       })
 
-      accountInclude.push({
+      accountActorInclude.push({
         model: ActorImageModel,
         as: 'Avatars',
         required: false
       })
 
         model: ActorImageModel,
         as: 'Avatars',
         required: false
       })
 
-      channelInclude.push({
+      channelActorInclude.push({
         model: ActorImageModel,
         as: 'Avatars',
         required: false
       })
 
         model: ActorImageModel,
         as: 'Avatars',
         required: false
       })
 
-      channelInclude.push({
+      channelActorInclude.push({
         model: ActorImageModel,
         as: 'Banners',
         required: false
         model: ActorImageModel,
         as: 'Banners',
         required: false
@@ -172,7 +172,7 @@ export type SummaryOptions = {
     }
 
     if (options.forCount !== true || serverRequired) {
     }
 
     if (options.forCount !== true || serverRequired) {
-      channelInclude.push({
+      channelActorInclude.push({
         model: ServerModel,
         duplicating: false,
         required: serverRequired,
         model: ServerModel,
         duplicating: false,
         required: serverRequired,
@@ -190,7 +190,7 @@ export type SummaryOptions = {
           where: {
             [Op.and]: whereActorAnd
           },
           where: {
             [Op.and]: whereActorAnd
           },
-          include: channelInclude
+          include: channelActorInclude
         },
         {
           model: AccountModel.unscoped(),
         },
         {
           model: AccountModel.unscoped(),
@@ -202,7 +202,7 @@ export type SummaryOptions = {
               },
               model: ActorModel.unscoped(),
               required: true,
               },
               model: ActorModel.unscoped(),
               required: true,
-              include: accountInclude
+              include: accountActorInclude
             }
           ]
         }
             }
           ]
         }
@@ -605,17 +605,17 @@ ON              "Account->Actor"."serverId" = "Account->Actor->Server"."id"`
       }
     }
 
       }
     }
 
-    const scopes: string | ScopeOptions | (string | ScopeOptions)[] = [ ScopeNames.WITH_ACTOR_BANNER ]
+    const findScopes: string | ScopeOptions | (string | ScopeOptions)[] = [ ScopeNames.WITH_ACTOR_BANNER ]
 
     if (options.withStats === true) {
 
     if (options.withStats === true) {
-      scopes.push({
+      findScopes.push({
         method: [ ScopeNames.WITH_STATS, { daysPrior: 30 } as AvailableWithStatsOptions ]
       })
     }
 
     return Promise.all([
         method: [ ScopeNames.WITH_STATS, { daysPrior: 30 } as AvailableWithStatsOptions ]
       })
     }
 
     return Promise.all([
-      VideoChannelModel.scope(scopes).count(getQuery(true)),
-      VideoChannelModel.scope(scopes).findAll(getQuery(false))
+      VideoChannelModel.unscoped().count(getQuery(true)),
+      VideoChannelModel.scope(findScopes).findAll(getQuery(false))
     ]).then(([ total, data ]) => ({ total, data }))
   }
 
     ]).then(([ total, data ]) => ({ total, data }))
   }
 
index 0f8227fd3cf62f62d961e079d7f817008ef67e15..09a4bfa702629adbc63845dcd56cdc93db20334f 100644 (file)
@@ -325,6 +325,24 @@ describe('Test video channels', function () {
     }
   })
 
     }
   })
 
+  it('Should still correctly list channels', async function () {
+    {
+      const body = await servers[0].channels.list({ start: 1, count: 1, sort: 'createdAt' })
+
+      expect(body.total).to.equal(3)
+      expect(body.data).to.have.lengthOf(1)
+      expect(body.data[0].name).to.equal('second_video_channel')
+    }
+
+    {
+      const body = await servers[0].channels.listByAccount({ accountName, start: 1, count: 1, sort: 'createdAt' })
+
+      expect(body.total).to.equal(2)
+      expect(body.data).to.have.lengthOf(1)
+      expect(body.data[0].name).to.equal('second_video_channel')
+    }
+  })
+
   it('Should delete the video channel avatar', async function () {
     this.timeout(15000)
     await servers[0].channels.deleteImage({ channelName: 'second_video_channel', type: 'avatar' })
   it('Should delete the video channel avatar', async function () {
     this.timeout(15000)
     await servers[0].channels.deleteImage({ channelName: 'second_video_channel', type: 'avatar' })