This repository has been archived by the owner on Jul 20, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bootstrap.js
81 lines (72 loc) · 1.53 KB
/
bootstrap.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var request = require('request'),
async = require('async-minihelper'),
couchApp = require('couchapp'),
couch = require('./config.js').couch,
root = couch.protocol + '://' + couch.username + ':' +
couch.password + '@' + couch.host + '/' + couch.dbName,
testDataSubmissions = require('./test/fixtures/contribs-interests.json'),
testDataVotes = require('./test/fixtures/votes.json'),
hoek = require('hoek'),
testData = hoek.merge(testDataSubmissions, testDataVotes);
function createDb (cb) {
request({
uri: root,
method: 'PUT',
json: true
}, function (err, res, body) {
if (err) {
throw err;
}
console.log('[info] ' + 'db created');
cb && cb();
});
}
function populateDb (cb) {
request({
uri: root + '/_bulk_docs',
method: 'POST',
json: true,
body: {
docs: testData
}
}, function (err, res, body) {
if (err) {
throw err;
}
console.log('[info] ' + 'db populated');
cb && cb();
});
}
function deleteDb (cb) {
request({
uri: root,
method: 'DELETE',
json: true
}, function (err, res, body) {
if (err) {
throw err;
}
console.log('[info] ' + 'db deleted');
cb && cb();
});
}
function createViews (cb) {
couchApp.createApp(require('./couch-data/views.js'), root, function (doc) {
doc.push();
cb && cb();
});
}
async([
function (cb) {
deleteDb(cb);
},
function (cb) {
createDb(cb);
},
function (cb) {
populateDb(cb);
},
function () {
createViews();
}
]);