-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.js
113 lines (98 loc) · 2.75 KB
/
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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
var express = require('express'),
uuid = require('node-uuid'); //https://github.com/broofa/node-uuid
var _ = require('underscore')._
var fs = require('fs');
app = module.exports = express.createServer();
//app = express.createServer();
app.configure(function(){
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(app.router);
app.set('views', __dirname + '/views');
app.set('view engine', 'jshtml');
app.use(express.static(__dirname + '/public'));
});
var contacts = [];
var contact = {
id : uuid.v1(),
firstname: "Steve",
lastname : "Gentile",
phonenumbers : [{"id" : uuid.v1(), "number": "111-111-1111"}]
}
contacts.push(contact);
app.get("/", function(req, res){
res.render("index");
});
app.get("/Contact", function(req, res){
console.log("Get " + JSON.stringify(contacts));
res.send(contacts);
});
app.get('/Contact/:id', function(req, res){
console.log(req.params.id);
var getContact = _.find(contacts, function(c){
return req.params.id == c.id;
});
console.log("Get by id " + req.params.id + JSON.stringify(getContact));
if(getContact){
res.send(getContact);}
else{
res.send({id:null});
}
});
app.post('/Contact', function(req, res){
var newContact = req.body;
newContact.id = uuid.v1();
console.log("Create " + JSON.stringify(newContact));
if(newContact.phonenumbers){
_.each(newContact.phonenumbers, function(phonenumber){
phonenumber.id = uuid.v1();
});
}
contacts.push(newContact);
res.send(req.body);
});
var url = require('url');
app.get("/template/:area/:name", function(req, res) {
var area = req.params.area;
var name = req.params.name;
var path = "public/Scripts/" + area + "/" + name + ".tmpl.htm";
console.log(path);
fs.readFile(path, function(error, content) {
if(error) {
res.writeHead(404);
res.end();
} else {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(content, 'utf-8');
}
});
});
app.put('/Contact/:id', function(req, res){
var editContact = _.find(contacts, function(c){
return req.body.id == c.id;
});
editContact.firstname = req.body.firstname;
editContact.lastname = req.body.lastname;
if(req.body.phonenumbers){
editContact.phonenumbers = req.body.phonenumbers;
_.each(editContact.phonenumbers, function(phonenumber){
if(!phonenumber.id){
phonenumber.id = uuid.v1();
}
});
}
console.log("Update " + JSON.stringify(editContact));
res.send(editContact);
});
app.del('/Contact/:id', function(req, res){
var editContact = _.find(contacts, function(c){
return req.params.id == c.id;
});
console.log("Delete " + JSON.stringify(editContact));
contacts = _.without(contacts, editContact);
res.send({ id : req.params.id});
});
var port = process.env.PORT || 3000;
app.listen(port, function() {
console.log("Listening on " + port);
});