-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathroutes.js
94 lines (80 loc) · 2.16 KB
/
routes.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
82
83
84
85
86
87
88
89
90
91
92
93
94
import { express, Router } from 'express';
import path from 'path';
import auth from './auth';
import bodyParser from 'body-parser';
import api from './backend/api';
import ItemPersist from './backend/stores/itemPersist.js';
const itempersist = new ItemPersist('./backend/data/itemDB.js');
const router = Router();
var jsonParser = bodyParser.json()
var urlencodedParser = bodyParser.urlencoded({ extended: false })
auth(router)
// return all resources
router.get("/api/items", function(req, res){
itempersist.all().then(
function(resources){
res.send(resources);
},
function(error){
console.log(error.message);
}
)
});
// return resource with a specific id
router.get("/api/items/:id", function(req,res){
itempersist.byID(req.params.id).then(
function(resource){
res.send(resource);
},
function(error){
console.log(error.message);
}
)
});
// update resource with given id
router.put("/api/items/:id", jsonParser, function(req,res){
itempersist.update(req.body).then(
function(resource){
res.send(resource);
},
function(error){
console.log(error.message);
}
)
});
// delete by id
router.delete("/api/items/:id", function(req, res){
itempersist.deleteByID(req.params.id).then(
function(resources){
res.send(resources);
},
function(error){
console.log(error.message);
}
)
})
// add a resource, send back "No content"
router.post("/api/items/", jsonParser, function(req,res){
// console.log("body", req.body)
itempersist.add(req.body).then(
function(newitem){
// console.log("Resources", newitem)
res.send(newitem)
}
).catch(console.log)
});
router.get('/logout', function(req, res){
req.logout();
res.redirect('/');
})
function ensureAuthenticated(req,res,next){
if(req.isAuthenticated())
return next();
res.redirect('/');
}
// need the wildcart so react-router can take over
// see https://codedump.io/share/V9K5oTL502r4/1/issue-with-routing-in-react-app
router.get("*", function(req, res) {
res.sendFile(__dirname + '/public/index.html')
})
export default router;