-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
96 lines (80 loc) · 2.34 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
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
/**
* Launcher del servidor.
*
* @author David Soler <aensoler@gmail.com>
*/
const SERVER_HOST = "127.0.0.1",
SERVER_PATH = "",
SERVER_PORT = 2000;
var express = require("express"),
restServer = express(),
bodyParser = require('body-parser'),
fs = require("fs");
var PersistenceFacade = require("./db/PersistenceFacade.class.js"),
pf = new PersistenceFacade();
pf.createTables(function() {
console.log("Database OK");
});
// Creates application/json parser
var jsonParser = bodyParser.json();
var makeResponse = function(status, content) {
return JSON.stringify({status: status, content: content});
};
restServer.post(SERVER_PATH+"/users", jsonParser, function(req, res) {
var requestJson = req.body;
if (typeof requestJson["name"] !== "string") {
res.end(makeResponse(false, "Name have to be a string"));
} else {
pf.createUser(requestJson["name"], function(err) {
if (err) {
res.end(makeResponse(false, err));
} else {
res.end(makeResponse(true, "OK"));
}
});
}
});
restServer.get(SERVER_PATH+"/users", function(req, res) {
pf.getUsers(function(err,rows) {
if (err) {
res.end(makeResponse(false, err));
} else {
res.end(makeResponse(true, rows));
}
});
});
restServer.post(SERVER_PATH+"/quotes", jsonParser, function(req, res) {
var requestJson = req.body,
inputIsInvalid = false;
if (typeof requestJson["from"] !== "string")
inputIsInvalid = "From have to be a string";
if (typeof requestJson["text"] !== "string")
inputIsInvalid = "Text have to be a string";
if (typeof requestJson["to"] !== "string")
inputIsInvalid = "To have to be a string";
if (inputIsInvalid) {
res.end(makeResponse(false, inputIsInvalid));
} else {
pf.createQuote(requestJson["from"],requestJson["to"],requestJson["text"], function(err) {
if (err) {
res.end(makeResponse(false, err));
} else {
res.end(makeResponse(true, "OK"));
}
});
}
});
restServer.get(SERVER_PATH+"/quotes/:username", function(req, res) {
var username = req.params.username;
console.log("Fetching all quotes of the " + username + "'s book.");
pf.getQuotesToUser(username, function(err,rows) {
if (err) {
res.end(makeResponse(false, err));
} else {
res.end(makeResponse(true, rows));
}
});
});
restServer.listen(SERVER_PORT, function() {
console.log("Listening on *: " + SERVER_PORT);
});