summaryrefslogtreecommitdiff
path: root/lib/server/api.js
blob: 12adada62811f09baffa7e2b9623374c16cf1674 (plain)
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
const db = require('../db')

module.exports = function api (app, type) {
  const type_s = '/' + type + 's/'
  const type_id = type_s + ':id'

  const model = db.models[type]
  
  // index
  app.get(type_s, (req, res) => {
    console.log('index', type)
    model.index(req.query).then( data => res.json(data) )
  })
  
  // show
  app.get(type_id, (req, res) => {
    console.log('show', type, req.params.id)
    model.show(req.params.id).then( (data) => {
      res.json(data)
    })
  })

  // create
  app.post(type_s, (req, res) => {
    console.log('create', type)
    model.create(req.body).then( (data) => {
      res.json(data)
    })// .catch( () => res.sendStatus(500) )
  })

  // update
  app.put(type_id, (req, res) => {
    console.log('update', type, req.params.id)
    model.update(req.body.id, req.body).then( (data) => {
      res.json(data)
    })// .catch( () => res.sendStatus(500) )
  })

  // destroy
  app.delete(type_id, (req, res) => {
    console.log('destroy', type, req.params.id)
    model.destroy(req.params.id).then( (data) => {
      res.json(data)
    })// .catch( () => res.sendStatus(500) )
  })
  
  return model
}