-
Notifications
You must be signed in to change notification settings - Fork 32
/
database.js
53 lines (47 loc) · 1.21 KB
/
database.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
* database.js: Configuration for CouchDB and cradle for this application.
*
* (C) 2010 Charlie Robbins
* MIT LICENSE
*
*/
var cradle = require('cradle');
var setup = exports.setup = function (options, callback) {
// Set connection configuration
cradle.setup({
host: options.host || '127.0.0.1',
port: 5984,
options: options.options,
});
// Connect to cradle
var conn = new (cradle.Connection)({ auth: options.auth }),
db = conn.database(options.database || 'pinpoint-dev');
if (options.setup) {
initViews(db, callback);
}
else {
callback(null, db);
}
};
var initViews = exports.initViews = function (db, callback) {
var designs = [
{
'_id': '_design/Bookmark',
views: {
all: {
map: function (doc) { if (doc.resource === 'Bookmark') emit(doc._id, doc) }
},
byUrl: {
map: function (doc) { if (doc.resource === 'Bookmark') { emit(doc.url, doc); } }
},
byDate: {
map: function (doc) { if (doc.resource === 'Bookmark') { emit(doc.date, doc); } }
}
}
}
];
db.save(designs, function (err) {
if (err) return callback(err);
callback(null, db);
});
};