mirror of https://github.com/Chocobozzz/PeerTube
Fix comments deleted display
parent
923ff87da2
commit
8adf0a767f
|
@ -178,5 +178,5 @@ async function removeVideoComment (req: express.Request, res: express.Response)
|
|||
|
||||
auditLogger.delete(getAuditIdFromRes(res), new CommentAuditView(videoCommentInstance.toFormattedJSON()))
|
||||
|
||||
return res.type('json').status(204)
|
||||
return res.type('json').status(204).end()
|
||||
}
|
||||
|
|
|
@ -24,13 +24,14 @@ import {
|
|||
MCommentOwnerVideoReply
|
||||
} from '../../typings/models/video'
|
||||
import { AccountModel } from '../account/account'
|
||||
import { ActorModel } from '../activitypub/actor'
|
||||
import { ActorModel, unusedActorAttributesForAPI } from '../activitypub/actor'
|
||||
import { buildBlockedAccountSQL, buildLocalAccountIdsIn, getCommentSort, throwIfNotValid } from '../utils'
|
||||
import { VideoModel } from './video'
|
||||
import { VideoChannelModel } from './video-channel'
|
||||
|
||||
enum ScopeNames {
|
||||
WITH_ACCOUNT = 'WITH_ACCOUNT',
|
||||
WITH_ACCOUNT_FOR_API = 'WITH_ACCOUNT_FOR_API',
|
||||
WITH_IN_REPLY_TO = 'WITH_IN_REPLY_TO',
|
||||
WITH_VIDEO = 'WITH_VIDEO',
|
||||
ATTRIBUTES_FOR_API = 'ATTRIBUTES_FOR_API'
|
||||
|
@ -82,6 +83,22 @@ enum ScopeNames {
|
|||
}
|
||||
]
|
||||
},
|
||||
[ScopeNames.WITH_ACCOUNT_FOR_API]: {
|
||||
include: [
|
||||
{
|
||||
model: AccountModel.unscoped(),
|
||||
include: [
|
||||
{
|
||||
attributes: {
|
||||
exclude: unusedActorAttributesForAPI
|
||||
},
|
||||
model: ActorModel, // Default scope includes avatar and server
|
||||
required: true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
[ScopeNames.WITH_IN_REPLY_TO]: {
|
||||
include: [
|
||||
{
|
||||
|
@ -275,18 +292,33 @@ export class VideoCommentModel extends Model<VideoCommentModel> {
|
|||
limit: count,
|
||||
order: getCommentSort(sort),
|
||||
where: {
|
||||
videoId,
|
||||
inReplyToCommentId: null,
|
||||
accountId: {
|
||||
[Op.notIn]: Sequelize.literal(
|
||||
'(' + buildBlockedAccountSQL(serverAccountId, userAccountId) + ')'
|
||||
)
|
||||
}
|
||||
[Op.and]: [
|
||||
{
|
||||
videoId
|
||||
},
|
||||
{
|
||||
inReplyToCommentId: null
|
||||
},
|
||||
{
|
||||
[Op.or]: [
|
||||
{
|
||||
accountId: {
|
||||
[Op.notIn]: Sequelize.literal(
|
||||
'(' + buildBlockedAccountSQL(serverAccountId, userAccountId) + ')'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
accountId: null
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
const scopes: (string | ScopeOptions)[] = [
|
||||
ScopeNames.WITH_ACCOUNT,
|
||||
ScopeNames.WITH_ACCOUNT_FOR_API,
|
||||
{
|
||||
method: [ ScopeNames.ATTRIBUTES_FOR_API, serverAccountId, userAccountId ]
|
||||
}
|
||||
|
@ -328,7 +360,7 @@ export class VideoCommentModel extends Model<VideoCommentModel> {
|
|||
}
|
||||
|
||||
const scopes: any[] = [
|
||||
ScopeNames.WITH_ACCOUNT,
|
||||
ScopeNames.WITH_ACCOUNT_FOR_API,
|
||||
{
|
||||
method: [ ScopeNames.ATTRIBUTES_FOR_API, serverAccountId, userAccountId ]
|
||||
}
|
||||
|
|
|
@ -195,7 +195,7 @@ describe('Test blocklist', function () {
|
|||
})
|
||||
|
||||
it('Should hide its comments', async function () {
|
||||
const resThreads = await getVideoCommentThreads(servers[0].url, videoUUID1, 0, 5, '-createdAt', servers[0].accessToken)
|
||||
const resThreads = await getVideoCommentThreads(servers[0].url, videoUUID1, 0, 25, '-createdAt', servers[0].accessToken)
|
||||
|
||||
const threads: VideoComment[] = resThreads.body.data
|
||||
expect(threads).to.have.lengthOf(1)
|
||||
|
@ -467,9 +467,11 @@ describe('Test blocklist', function () {
|
|||
|
||||
it('Should hide its comments', async function () {
|
||||
for (const token of [ userModeratorToken, servers[0].accessToken ]) {
|
||||
const resThreads = await getVideoCommentThreads(servers[0].url, videoUUID1, 0, 5, '-createdAt', token)
|
||||
const resThreads = await getVideoCommentThreads(servers[0].url, videoUUID1, 0, 20, '-createdAt', token)
|
||||
|
||||
let threads: VideoComment[] = resThreads.body.data
|
||||
threads = threads.filter(t => t.isDeleted === false)
|
||||
|
||||
const threads: VideoComment[] = resThreads.body.data
|
||||
expect(threads).to.have.lengthOf(1)
|
||||
expect(threads[0].totalReplies).to.equal(0)
|
||||
|
||||
|
|
Loading…
Reference in New Issue