/
index.js
57 lines (48 loc) · 1.35 KB
/
index.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
module.exports = hapiAccount
hapiAccount.attributes = {
name: 'account'
}
// var getApi = require('../api')
var getApi = require('@hoodie/account-server-api')
var _ = require('lodash')
var routePlugins = [
require('../routes/account'),
require('../routes/accounts'),
require('../routes/profile'),
require('../routes/requests'),
require('../routes/session')
]
var TIMEOUT_14_DAYS = 1209600
function hapiAccount (server, options, next) {
var routeOptions = _.cloneDeep({}, options)
routeOptions.sessionTimeout = options.sessionTimeout || TIMEOUT_14_DAYS
options.usersDb.constructor.plugin(require('pouchdb-admins'))
var users = getApi({
db: options.usersDb,
secret: options.secret,
sessionTimeout: routeOptions.sessionTimeout
})
routeOptions.admins = options.usersDb.admins({
secret: options.secret,
admins: options.admins,
sessionTimeout: routeOptions.sessionTimeout
})
delete routeOptions.secret
routeOptions.notifications = options.notifications
server.expose({
api: users
})
var plugins = [{
register: require('@gar/hapi-json-api'),
options: {}
}, {
register: require('./remove-cookie-header'),
options: {'sandbox': 'plugin'}
}].concat(routePlugins.map(function (plugin) {
return {
register: plugin,
options: routeOptions
}
}))
server.register(plugins, next)
}