]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/api/pods.js
Add video category support
[github/Chocobozzz/PeerTube.git] / server / controllers / api / pods.js
index 853e0705bcfb47c288ff2572ebf20b95a48f70c3..ab5763cf6a1f84f96decc08e6f8ec77cae648c53 100644 (file)
@@ -1,33 +1,33 @@
 'use strict'
 
 const express = require('express')
-const mongoose = require('mongoose')
 const waterfall = require('async/waterfall')
 
+const db = require('../../initializers/database')
+const constants = require('../../initializers/constants')
 const logger = require('../../helpers/logger')
+const peertubeCrypto = require('../../helpers/peertube-crypto')
+const utils = require('../../helpers/utils')
 const friends = require('../../lib/friends')
 const middlewares = require('../../middlewares')
 const admin = middlewares.admin
 const oAuth = middlewares.oauth
 const podsMiddleware = middlewares.pods
-const checkSignature = middlewares.secure.checkSignature
 const validators = middlewares.validators.pods
-const signatureValidator = middlewares.validators.remote.signature
 
 const router = express.Router()
-const Pod = mongoose.model('Pod')
 
 router.get('/', listPods)
 router.post('/',
+  podsMiddleware.setBodyHostPort, // We need to modify the host before running the validator!
   validators.podsAdd,
-  podsMiddleware.setBodyUrlPort,
   addPods
 )
 router.post('/makefriends',
   oAuth.authenticate,
   admin.ensureIsAdmin,
   validators.makeFriends,
-  podsMiddleware.setBodyUrlsPort,
+  podsMiddleware.setBodyHostsPort,
   makeFriends
 )
 router.get('/quitfriends',
@@ -35,12 +35,6 @@ router.get('/quitfriends',
   admin.ensureIsAdmin,
   quitFriends
 )
-// Post because this is a secured request
-router.post('/remove',
-  signatureValidator,
-  checkSignature,
-  removePods
-)
 
 // ---------------------------------------------------------------------------
 
@@ -53,21 +47,21 @@ function addPods (req, res, next) {
 
   waterfall([
     function addPod (callback) {
-      const pod = new Pod(informations)
-      pod.save(function (err, podCreated) {
+      const pod = db.Pod.build(informations)
+      pod.save().asCallback(function (err, podCreated) {
         // Be sure about the number of parameters for the callback
         return callback(err, podCreated)
       })
     },
 
     function sendMyVideos (podCreated, callback) {
-      friends.sendOwnedVideosToPod(podCreated._id)
+      friends.sendOwnedVideosToPod(podCreated.id)
 
       callback(null)
     },
 
     function fetchMyCertificate (callback) {
-      friends.getMyCertificate(function (err, cert) {
+      peertubeCrypto.getMyPublicCert(function (err, cert) {
         if (err) {
           logger.error('Cannot read cert file.')
           return callback(err)
@@ -79,22 +73,22 @@ function addPods (req, res, next) {
   ], function (err, cert) {
     if (err) return next(err)
 
-    return res.json({ cert: cert })
+    return res.json({ cert: cert, email: constants.CONFIG.ADMIN.EMAIL })
   })
 }
 
 function listPods (req, res, next) {
-  Pod.list(function (err, podsUrlList) {
+  db.Pod.list(function (err, podsList) {
     if (err) return next(err)
 
-    res.json(getFormatedPods(podsUrlList))
+    res.json(utils.getFormatedObjects(podsList, podsList.length))
   })
 }
 
 function makeFriends (req, res, next) {
-  const urls = req.body.urls
+  const hosts = req.body.hosts
 
-  friends.makeFriends(urls, function (err) {
+  friends.makeFriends(hosts, function (err) {
     if (err) {
       logger.error('Could not make friends.', { error: err })
       return
@@ -106,24 +100,6 @@ function makeFriends (req, res, next) {
   res.type('json').status(204).end()
 }
 
-function removePods (req, res, next) {
-  const url = req.body.signature.url
-
-  waterfall([
-    function loadPod (callback) {
-      Pod.loadByUrl(url, callback)
-    },
-
-    function removePod (pod, callback) {
-      pod.remove(callback)
-    }
-  ], function (err) {
-    if (err) return next(err)
-
-    return res.type('json').status(204).end()
-  })
-}
-
 function quitFriends (req, res, next) {
   friends.quitFriends(function (err) {
     if (err) return next(err)
@@ -131,15 +107,3 @@ function quitFriends (req, res, next) {
     res.type('json').status(204).end()
   })
 }
-
-// ---------------------------------------------------------------------------
-
-function getFormatedPods (pods) {
-  const formatedPods = []
-
-  pods.forEach(function (pod) {
-    formatedPods.push(pod.toFormatedJSON())
-  })
-
-  return formatedPods
-}