diff options
Diffstat (limited to 'initializers/database.js')
-rw-r--r-- | initializers/database.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/initializers/database.js b/initializers/database.js new file mode 100644 index 000000000..4570d3739 --- /dev/null +++ b/initializers/database.js | |||
@@ -0,0 +1,61 @@ | |||
1 | ;(function () { | ||
2 | 'use strict' | ||
3 | |||
4 | var config = require('config') | ||
5 | var mongoose = require('mongoose') | ||
6 | |||
7 | var constants = require('./constants') | ||
8 | var logger = require('../helpers/logger') | ||
9 | |||
10 | var dbname = 'peertube' + config.get('database.suffix') | ||
11 | var host = config.get('database.host') | ||
12 | var port = config.get('database.port') | ||
13 | |||
14 | // ----------- Videos ----------- | ||
15 | var videosSchema = mongoose.Schema({ | ||
16 | name: String, | ||
17 | namePath: String, | ||
18 | description: String, | ||
19 | magnetUri: String, | ||
20 | podUrl: String | ||
21 | }) | ||
22 | |||
23 | var VideosDB = mongoose.model('videos', videosSchema) | ||
24 | |||
25 | // ----------- Pods ----------- | ||
26 | var podsSchema = mongoose.Schema({ | ||
27 | url: String, | ||
28 | publicKey: String, | ||
29 | score: { type: Number, max: constants.FRIEND_BASE_SCORE } | ||
30 | }) | ||
31 | |||
32 | var PodsDB = mongoose.model('pods', podsSchema) | ||
33 | |||
34 | // ----------- PoolRequests ----------- | ||
35 | var poolRequestsSchema = mongoose.Schema({ | ||
36 | type: String, | ||
37 | id: String, // Special id to find duplicates (video created we want to remove...) | ||
38 | request: mongoose.Schema.Types.Mixed | ||
39 | }) | ||
40 | |||
41 | var PoolRequestsDB = mongoose.model('poolRequests', poolRequestsSchema) | ||
42 | |||
43 | // ----------- Connection ----------- | ||
44 | |||
45 | mongoose.connect('mongodb://' + host + ':' + port + '/' + dbname) | ||
46 | mongoose.connection.on('error', function () { | ||
47 | logger.error('Mongodb connection error.') | ||
48 | process.exit(0) | ||
49 | }) | ||
50 | |||
51 | mongoose.connection.on('open', function () { | ||
52 | logger.info('Connected to mongodb.') | ||
53 | }) | ||
54 | |||
55 | // ----------- Export ----------- | ||
56 | module.exports = { | ||
57 | VideosDB: VideosDB, | ||
58 | PodsDB: PodsDB, | ||
59 | PoolRequestsDB: PoolRequestsDB | ||
60 | } | ||
61 | })() | ||