var logger = require('../helpers/logger')
var peertubeCrypto = require('../helpers/peertubeCrypto')
var Pods = require('../models/pods')
- var PoolRequests = require('../models/poolRequests')
var poolRequests = require('../lib/poolRequests')
var requests = require('../helpers/requests')
var Videos = require('../models/videos')
var id = video.name + video.magnetUri
// ensure namePath is null
video.namePath = null
- PoolRequests.addRequest(id, 'add', video)
+ poolRequests.addRequest(id, 'add', video)
}
function hasFriends (callback) {
function removeVideoToFriends (video) {
// To avoid duplicates
var id = video.name + video.magnetUri
- PoolRequests.addRequest(id, 'remove', video)
+ poolRequests.addRequest(id, 'remove', video)
}
// ---------------------------------------------------------------------------
var poolRequests = {
activate: activate,
+ addRequest: addRequest,
deactivate: deactivate,
forceSend: forceSend
}
+ function activate () {
+ logger.info('Pool requests activated.')
+ timer = setInterval(makePoolRequests, constants.INTERVAL)
+ }
+
+ function addRequest (id, type, request) {
+ logger.debug('Add request to the pool requests.', { id: id, type: type, request: request })
+
+ PoolRequests.findById(id, function (err, entity) {
+ if (err) {
+ logger.error('Cannot find one pool request.', { error: err })
+ return // Abort
+ }
+
+ if (entity) {
+ if (entity.type === type) {
+ logger.error('Cannot insert two same requests.')
+ return // Abort
+ }
+
+ // Remove the request of the other type
+ PoolRequests.removeById(id, function (err) {
+ if (err) {
+ logger.error('Cannot remove a pool request.', { error: err })
+ return // Abort
+ }
+ })
+ } else {
+ PoolRequests.create(id, type, request, function (err) {
+ logger.error('Cannot create a pool request.', { error: err })
+ return // Abort
+ })
+ }
+ })
+ }
+
function deactivate () {
logger.info('Pool requests deactivated.')
clearInterval(timer)
makePoolRequests()
}
- function activate () {
- logger.info('Pool requests activated.')
- timer = setInterval(makePoolRequests, constants.INTERVAL)
- }
-
// ---------------------------------------------------------------------------
module.exports = poolRequests
// ---------------------------------------------------------------------------
var PoolRequests = {
- addRequest: addRequest,
+ create: create,
+ findById: findById,
list: list,
+ removeRequestById: removeRequestById,
removeRequests: removeRequests
}
- function addRequest (id, type, request) {
- logger.debug('Add request to the pool requests.', { id: id, type: type, request: request })
-
- PoolRequestsDB.findOne({ id: id }, function (err, entity) {
- if (err) {
- logger.error('Cannot find one pool request.', { error: err })
- return // Abort
- }
-
- if (entity) {
- if (entity.type === type) {
- logger.error('Cannot insert two same requests.')
- return // Abort
- }
+ function create (id, type, request, callback) {
+ PoolRequestsDB.create({ id: id, type: type, request: request }, callback)
+ }
- // Remove the request of the other type
- PoolRequestsDB.remove({ id: id }, function (err) {
- if (err) {
- logger.error('Cannot remove a pool request.', { error: err })
- return // Abort
- }
- })
- } else {
- PoolRequestsDB.create({ id: id, type: type, request: request }, function (err) {
- logger.error('Cannot create a pool request.', { error: err })
- return // Abort
- })
- }
- })
+ function findById (id, callback) {
+ PoolRequestsDB.findOne({ id: id }, callback)
}
function list (callback) {
PoolRequestsDB.find({}, { _id: 1, type: 1, request: 1 }, callback)
}
+ function removeRequestById (id, callback) {
+ PoolRequestsDB.remove({ id: id }, callback)
+ }
+
function removeRequests (ids) {
PoolRequestsDB.remove({ _id: { $in: ids } }, function (err) {
if (err) {