diff options
Diffstat (limited to 'server/models/poolRequests.js')
-rw-r--r-- | server/models/poolRequests.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/server/models/poolRequests.js b/server/models/poolRequests.js new file mode 100644 index 000000000..970315597 --- /dev/null +++ b/server/models/poolRequests.js | |||
@@ -0,0 +1,55 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | var mongoose = require('mongoose') | ||
4 | |||
5 | var logger = require('../helpers/logger') | ||
6 | |||
7 | // --------------------------------------------------------------------------- | ||
8 | |||
9 | var poolRequestsSchema = mongoose.Schema({ | ||
10 | type: String, | ||
11 | id: String, // Special id to find duplicates (video created we want to remove...) | ||
12 | request: mongoose.Schema.Types.Mixed | ||
13 | }) | ||
14 | var PoolRequestsDB = mongoose.model('poolRequests', poolRequestsSchema) | ||
15 | |||
16 | // --------------------------------------------------------------------------- | ||
17 | |||
18 | var PoolRequests = { | ||
19 | create: create, | ||
20 | findById: findById, | ||
21 | list: list, | ||
22 | removeRequestById: removeRequestById, | ||
23 | removeRequests: removeRequests | ||
24 | } | ||
25 | |||
26 | function create (id, type, request, callback) { | ||
27 | PoolRequestsDB.create({ id: id, type: type, request: request }, callback) | ||
28 | } | ||
29 | |||
30 | function findById (id, callback) { | ||
31 | PoolRequestsDB.findOne({ id: id }, callback) | ||
32 | } | ||
33 | |||
34 | function list (callback) { | ||
35 | PoolRequestsDB.find({}, { _id: 1, type: 1, request: 1 }, callback) | ||
36 | } | ||
37 | |||
38 | function removeRequestById (id, callback) { | ||
39 | PoolRequestsDB.remove({ id: id }, callback) | ||
40 | } | ||
41 | |||
42 | function removeRequests (ids) { | ||
43 | PoolRequestsDB.remove({ _id: { $in: ids } }, function (err) { | ||
44 | if (err) { | ||
45 | logger.error('Cannot remove requests from the pool requests database.', { error: err }) | ||
46 | return // Abort | ||
47 | } | ||
48 | |||
49 | logger.info('Pool requests flushed.') | ||
50 | }) | ||
51 | } | ||
52 | |||
53 | // --------------------------------------------------------------------------- | ||
54 | |||
55 | module.exports = PoolRequests | ||