Split utils file
[oweals/peertube.git] / server.js
index 715556414d9b781ffaad98e0061bc079af74b3d1..b8674b0b52c80b6e30a7cac8722818ee2ca131c1 100644 (file)
--- a/server.js
+++ b/server.js
@@ -1,16 +1,12 @@
 ;(function () {
   'use strict'
 
-  // ----------- Constants -----------
-  global.API_VERSION = 'v1'
-
   // ----------- Node modules -----------
   var bodyParser = require('body-parser')
   var express = require('express')
   var expressValidator = require('express-validator')
   var http = require('http')
   var morgan = require('morgan')
-  var multer = require('multer')
   var path = require('path')
   var TrackerServer = require('bittorrent-tracker').Server
   var WebSocketServer = require('ws').Server
@@ -19,7 +15,7 @@
   var app = express()
 
   // ----------- Checker -----------
-  var checker = require('./src/checker')
+  var checker = require('./initializers/checker')
 
   var miss = checker.checkConfig()
   if (miss.length !== 0) {
 
   // ----------- PeerTube modules -----------
   var config = require('config')
-  var logger = require('./src/logger')
-  var routes = require('./routes')
-  var utils = require('./src/utils')
-  var videos = require('./src/videos')
-  var webtorrent = require('./src/webTorrentNode')
+  var constants = require('./initializers/constants')
+  var customValidators = require('./helpers/customValidators')
+  var database = require('./initializers/database')
+  var logger = require('./helpers/logger')
+  var peertubeCrypto = require('./helpers/peertubeCrypto')
+  var poolRequests = require('./lib/poolRequests')
+  var routes = require('./controllers')
+  var utils = require('./helpers/utils')
+  var videos = require('./lib/videos')
+  var webtorrent = require('./lib/webTorrentNode')
 
   // Get configurations
   var port = config.get('listen.port')
-  var uploads = config.get('storage.uploads')
+
+  // ----------- Database -----------
+  database.connect()
 
   // ----------- Command line -----------
 
   app.use(morgan('combined', { stream: logger.stream }))
   // For body requests
   app.use(bodyParser.json())
-  // For POST file requests
-  app.use(multer({ dest: uploads }))
   app.use(bodyParser.urlencoded({ extended: false }))
   // Validate some params for the API
-  app.use(expressValidator())
+  app.use(expressValidator({
+    customValidators: customValidators
+  }))
 
   // ----------- Views, routes and static files -----------
 
@@ -74,7 +77,7 @@
   app.set('view engine', 'jade')
 
   // API routes
-  var api_route = '/api/' + global.API_VERSION
+  var api_route = '/api/' + constants.API_VERSION
   app.use(api_route, routes.api)
 
   // Views routes
   // Prod : no stacktraces leaked to user
   if (process.env.NODE_ENV === 'production') {
     app.use(function (err, req, res, next) {
-      logger.error('Error : ' + err.message, { error: err })
+      logger.error(err)
       res.status(err.status || 500)
       res.render('error', {
         message: err.message,
     })
   } else {
     app.use(function (err, req, res, next) {
-      logger.error('Error : ' + err.message, { error: err })
+      logger.error(err)
       res.status(err.status || 500)
       res.render('error', {
         message: err.message,
   }
 
   // ----------- Create the certificates if they don't already exist -----------
-  utils.createCertsIfNotExist(function (err) {
+  peertubeCrypto.createCertsIfNotExist(function (err) {
     if (err) throw err
     // Create/activate the webtorrent module
     webtorrent.create(function () {
 
       // ----------- Make the server listening -----------
       server.listen(port, function () {
-        videos.seedAll(function () {
+        // Activate the pool requests
+        poolRequests.activate()
+
+        videos.seedAllExisting(function () {
           logger.info('Seeded all the videos')
           logger.info('Server listening on port %d', port)
           app.emit('ready')