]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - models/pods.js
Error handling mini refractoring
[github/Chocobozzz/PeerTube.git] / models / pods.js
CommitLineData
8c308c2b
C
1;(function () {
2 'use strict'
3
c173e565 4 var mongoose = require('mongoose')
8c308c2b 5
cda02107
C
6 var constants = require('../initializers/constants')
7 var logger = require('../helpers/logger')
8c308c2b 8
c173e565
C
9 // ---------------------------------------------------------------------------
10
11 var podsSchema = mongoose.Schema({
12 url: String,
13 publicKey: String,
14 score: { type: Number, max: constants.FRIEND_BASE_SCORE }
15 })
16 var PodsDB = mongoose.model('pods', podsSchema)
8c308c2b 17
c173e565
C
18 // ---------------------------------------------------------------------------
19
20 var Pods = {
c45f7f84 21 add: add,
c173e565
C
22 count: count,
23 findByUrl: findByUrl,
24 findBadPods: findBadPods,
25 incrementScores: incrementScores,
c45f7f84 26 list: list,
c45f7f84 27 remove: remove,
c173e565
C
28 removeAll: removeAll,
29 removeAllByIds: removeAllByIds
8c308c2b
C
30 }
31
45239549 32 // TODO: check if the pod is not already a friend
c45f7f84 33 function add (data, callback) {
c173e565 34 if (!callback) callback = function () {}
8c308c2b
C
35 var params = {
36 url: data.url,
3bcb78b3 37 publicKey: data.publicKey,
656ea8f7 38 score: constants.FRIEND_BASE_SCORE
8c308c2b
C
39 }
40
c173e565
C
41 PodsDB.create(params, callback)
42 }
45239549 43
c173e565
C
44 function count (callback) {
45 return PodsDB.count(callback)
46 }
8c308c2b 47
c173e565
C
48 function findBadPods (callback) {
49 PodsDB.find({ score: 0 }, callback)
50 }
45239549 51
c173e565
C
52 function findByUrl (url, callback) {
53 PodsDB.findOne({ url: url }, callback)
45239549
C
54 }
55
c173e565
C
56 function incrementScores (ids, value, callback) {
57 if (!callback) callback = function () {}
58 PodsDB.update({ _id: { $in: ids } }, { $inc: { score: value } }, { multi: true }, callback)
c45f7f84 59 }
45239549 60
c45f7f84
C
61 function list (callback) {
62 PodsDB.find(function (err, pods_list) {
63 if (err) {
8425cb89 64 logger.error('Cannot get the list of the pods.')
c45f7f84
C
65 return callback(err)
66 }
45239549 67
c45f7f84 68 return callback(null, pods_list)
8c308c2b
C
69 })
70 }
71
c45f7f84 72 function remove (url, callback) {
c173e565
C
73 if (!callback) callback = function () {}
74 PodsDB.remove({ url: url }, callback)
8c308c2b
C
75 }
76
c173e565
C
77 function removeAll (callback) {
78 if (!callback) callback = function () {}
79 PodsDB.remove(callback)
c45f7f84
C
80 }
81
c173e565
C
82 function removeAllByIds (ids, callback) {
83 if (!callback) callback = function () {}
84 PodsDB.remove({ _id: { $in: ids } }, callback)
85 }
c45f7f84
C
86
87 // ---------------------------------------------------------------------------
88
c173e565 89 module.exports = Pods
8c308c2b 90})()