-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
35 lines (27 loc) · 838 Bytes
/
server.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
var express = require('express');
var knexConfig = require('./knexfile');
var knex = require('knex')(knexConfig.development);
var bookshelf = require('bookshelf')(knex);
var app = module.exports = express();
var api = require('kalamata')(app);
var Thing = bookshelf.Model.extend({
tableName: 'things'
});
var User = bookshelf.Model.extend({
tableName: 'users',
things: function() {
return this.hasMany(Thing);
}
});
api.expose(User);
api.expose(Thing);
api.beforeGetThings(execThingsQuery);
api.beforeGetRelatedThings(execThingsQuery);
function execThingsQuery(req, res, model) {
// only get things that are not flagged as deleted
model.where({'deleted': false});
}
var port = Number(process.env.PORT || 9999);
app.listen(port, function() {
console.log('Server listening on port ' + port);
});