'use strict'
-const async = require('async')
-const config = require('config')
const express = require('express')
const mongoose = require('mongoose')
const multer = require('multer')
+const waterfall = require('async/waterfall')
+const constants = require('../../../initializers/constants')
const logger = require('../../../helpers/logger')
const friends = require('../../../lib/friends')
const middlewares = require('../../../middlewares')
-const oAuth2 = middlewares.oauth2
+const oAuth = middlewares.oauth
const pagination = middlewares.pagination
-const reqValidator = middlewares.reqValidators
-const reqValidatorPagination = reqValidator.pagination
-const reqValidatorSort = reqValidator.sort
-const reqValidatorVideos = reqValidator.videos
+const validators = middlewares.validators
+const validatorsPagination = validators.pagination
+const validatorsSort = validators.sort
+const validatorsVideos = validators.videos
const search = middlewares.search
const sort = middlewares.sort
const utils = require('../../../helpers/utils')
const router = express.Router()
-const uploads = config.get('storage.uploads')
const Video = mongoose.model('Video')
// multer configuration
const storage = multer.diskStorage({
destination: function (req, file, cb) {
- cb(null, uploads)
+ cb(null, constants.CONFIG.STORAGE.UPLOAD_DIR)
},
filename: function (req, file, cb) {
const reqFiles = multer({ storage: storage }).fields([{ name: 'videofile', maxCount: 1 }])
router.get('/',
- reqValidatorPagination.pagination,
- reqValidatorSort.videosSort,
+ validatorsPagination.pagination,
+ validatorsSort.videosSort,
sort.setVideosSort,
pagination.setPagination,
listVideos
)
router.post('/',
- oAuth2.authenticate,
+ oAuth.authenticate,
reqFiles,
- reqValidatorVideos.videosAdd,
+ validatorsVideos.videosAdd,
addVideo
)
router.get('/:id',
- reqValidatorVideos.videosGet,
+ validatorsVideos.videosGet,
getVideo
)
router.delete('/:id',
- oAuth2.authenticate,
- reqValidatorVideos.videosRemove,
+ oAuth.authenticate,
+ validatorsVideos.videosRemove,
removeVideo
)
router.get('/search/:value',
- reqValidatorVideos.videosSearch,
- reqValidatorPagination.pagination,
- reqValidatorSort.videosSort,
+ validatorsVideos.videosSearch,
+ validatorsPagination.pagination,
+ validatorsSort.videosSort,
sort.setVideosSort,
pagination.setPagination,
search.setVideosSearch,
const videoFile = req.files.videofile[0]
const videoInfos = req.body
- async.waterfall([
+ waterfall([
function insertIntoDB (callback) {
const videoData = {
name: videoInfos.name,
- namePath: videoFile.filename,
+ filename: videoFile.filename,
description: videoInfos.description,
author: res.locals.oauth.token.user.username,
duration: videoFile.duration,
}
function listVideos (req, res, next) {
- Video.list(req.query.start, req.query.count, req.query.sort, function (err, videosList, videosTotal) {
+ Video.listForApi(req.query.start, req.query.count, req.query.sort, function (err, videosList, videosTotal) {
if (err) return next(err)
res.json(getFormatedVideos(videosList, videosTotal))
function removeVideo (req, res, next) {
const videoId = req.params.id
- async.waterfall([
+ waterfall([
function getVideo (callback) {
Video.load(videoId, callback)
},