1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-05 10:49:28 +02:00

Handle blacklist (#84)

* Client: Add list blacklist feature

* Server: Add list blacklist feature

* Client: Add videoId column

* Server: Add some video infos in the REST api

* Client: Add video information in the blacklist list

* Fix sortable columns :)

* Client: Add removeFromBlacklist feature

* Server: Add removeFromBlacklist feature

* Move to TypeScript

* Move to TypeScript and Promises

* Server: Fix blacklist list sort

* Server: Fetch videos informations

* Use common shared interface for client and server

* Add check-params remove blacklisted video tests

* Add check-params list blacklisted videos tests

* Add list blacklist tests

* Add remove from blacklist tests

* Add video blacklist management tests

* Fix rebase onto develop issues

* Server: Add sort on blacklist id column

* Server: Add blacklists library

* Add blacklist id sort test

* Add check-params tests for blacklist list pagination, count and sort

* Fix coding style

* Increase Remote API tests timeout

* Increase Request scheduler API tests timeout

* Fix typo

* Increase video transcoding API tests timeout

* Move tests to Typescript

* Use lodash orderBy method

* Fix typos

* Client: Remove optional tests in blacklist model attributes

* Move blacklist routes from 'blacklists' to 'blacklist'

* CLient: Remove blacklist-list.component.scss

* Rename 'blacklists' files to 'blacklist'

* Use only BlacklistedVideo interface

* Server: Use getFormattedObjects method in listBlacklist method

* Client: Use new coding style

* Server: Use new sort validator methods

* Server: Use new checkParams methods

* Client: Fix sortable columns
This commit is contained in:
Green-Star 2017-09-22 09:13:43 +02:00 committed by Bigard Florian
parent c9d6d155c3
commit 792dbaf07f
36 changed files with 805 additions and 124 deletions

View file

@ -0,0 +1,60 @@
import * as express from 'express'
import { database } from '../../initializers'
import { getFormattedObjects } from '../../helpers'
import { BlacklistedVideo } from '../../../shared'
import { BlacklistedVideoInstance } from '../../models'
import {
removeVideoFromBlacklist
} from '../../lib'
import {
authenticate,
ensureIsAdmin,
paginationValidator,
blacklistSortValidator,
setBlacklistSort,
setPagination,
blacklistRemoveValidator
} from '../../middlewares'
const blacklistRouter = express.Router()
blacklistRouter.get('/',
authenticate,
ensureIsAdmin,
paginationValidator,
blacklistSortValidator,
setBlacklistSort,
setPagination,
listBlacklist
)
blacklistRouter.delete('/:id',
authenticate,
ensureIsAdmin,
blacklistRemoveValidator,
removeVideoFromBlacklistController
)
// ---------------------------------------------------------------------------
export {
blacklistRouter
}
// ---------------------------------------------------------------------------
function listBlacklist (req: express.Request, res: express.Response, next: express.NextFunction) {
database.BlacklistedVideo.listForApi(req.query.start, req.query.count, req.query.sort)
.then(resultList => res.json(getFormattedObjects<BlacklistedVideo, BlacklistedVideoInstance>(resultList.data, resultList.total)))
.catch(err => next(err))
}
function removeVideoFromBlacklistController (req: express.Request, res: express.Response, next: express.NextFunction) {
const entry = res.locals.blacklistEntryToRemove as BlacklistedVideoInstance
removeVideoFromBlacklist(entry)
.then(() => res.sendStatus(204))
.catch(err => next(err))
}

View file

@ -9,6 +9,7 @@ import { remoteRouter } from './remote'
import { requestSchedulerRouter } from './request-schedulers'
import { usersRouter } from './users'
import { videosRouter } from './videos'
import { blacklistRouter } from './blacklist'
const apiRouter = express.Router()
@ -19,6 +20,7 @@ apiRouter.use('/remote', remoteRouter)
apiRouter.use('/request-schedulers', requestSchedulerRouter)
apiRouter.use('/users', usersRouter)
apiRouter.use('/videos', videosRouter)
apiRouter.use('/blacklist', blacklistRouter)
apiRouter.use('/ping', pong)
apiRouter.use('/*', badRequest)