]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - models/poolRequests.js
4 var mongoose
= require('mongoose')
6 var logger
= require('../helpers/logger')
8 // ---------------------------------------------------------------------------
10 var poolRequestsSchema
= mongoose
.Schema({
12 id: String
, // Special id to find duplicates (video created we want to remove...)
13 request: mongoose
.Schema
.Types
.Mixed
15 var PoolRequestsDB
= mongoose
.model('poolRequests', poolRequestsSchema
)
17 // ---------------------------------------------------------------------------
20 addRequest: addRequest
,
22 removeRequests: removeRequests
25 function addRequest (id
, type
, request
) {
26 logger
.debug('Add request to the pool requests.', { id: id
, type: type
, request: request
})
28 PoolRequestsDB
.findOne({ id: id
}, function (err
, entity
) {
29 if (err
) logger
.error(err
)
32 if (entity
.type
=== type
) {
33 logger
.error(new Error('Cannot insert two same requests.'))
37 // Remove the request of the other type
38 PoolRequestsDB
.remove({ id: id
}, function (err
) {
39 if (err
) logger
.error(err
)
42 PoolRequestsDB
.create({ id: id
, type: type
, request: request
}, function (err
) {
43 if (err
) logger
.error(err
)
49 function list (callback
) {
50 PoolRequestsDB
.find({}, { _id: 1, type: 1, request: 1 }, callback
)
53 function removeRequests (ids
) {
54 PoolRequestsDB
.remove({ _id: { $in: ids
} }, function (err
) {
56 logger
.error('Cannot remove requests from the pool requests database.', { error: err
})
60 logger
.info('Pool requests flushed.')
64 // ---------------------------------------------------------------------------
66 module
.exports
= PoolRequests