/
index.js
135 lines (108 loc) · 3.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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('video-builder.db');
var check;
db.serialize(function() {
db.run("CREATE TABLE if not exists story ( "
+ "id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "email VARCHAR, data TEXT, "
+ "lastupdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP) ");
db.run("CREATE TABLE if not exists answer ( "
+ "id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "story_id INTEGER, question_id INTEGER, option_id INTEGER,"
+ "lastupdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP) ");
});
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use('/', express.static(__dirname + '/client'));
app.post('/api/story/save', function (req, res) {
console.log('/api/story/save', req.body );
if( req.body.data.id ){
var update = db.run("UPDATE story set data = ? WHERE id = ?",
[JSON.stringify(req.body.data), req.body.data.id],
function(err){
if(err){
console.log('error: ', err );
res.status(500).send({ error: err });
return;
}
var result = { id: req.body.data.id };
console.log('story UPDATED: ', result );
res.json(result);
});
} else {
var insert = db.run("INSERT INTO story(email,data) VALUES (?,?)",
[req.body.email, JSON.stringify(req.body.data)],
function(err){
if(err){
console.log('error: ', err );
res.status(500).send({ error: err });
return;
}
var result = { id: this.lastID };
console.log('story saved: ', result );
res.json(result);
});
}
});
app.post('/api/story/remove', function (req, res) {
console.log('/api/story/remove', req.body.id );
var insert = db.run("DELETE FROM story WHERE id = ?", req.body.id,
function(err){
if(err){
console.log('error: ', err );
res.status(500).send({ error: err });
return;
}
var result = { id: req.body.id };
console.log('story removed: ', result );
res.json(result);
});
});
app.post('/api/answer/create', function (req, res) {
console.log('/api/answer/create', req.body );
var insert = db.run("INSERT INTO answer(story_id,question_id,option_id) VALUES (?,?,?)",
[req.body.story_id, req.body.question_id, req.body.option_id],
function(err){
if(err){
console.log('error: ', err );
res.status(500).send({ error: err });
return;
}
var result = { id: this.lastID };
console.log('answer saved: ', result );
res.json(result);
});
});
app.get('/api/story/:id', function (req, res) {
var msg = 'get story from id: ' + req.params.id;
console.log(msg);
var result = db.all('SELECT * FROM story WHERE id = ? ', req.params.id,
function(err,rows){
if(err){
console.log('error: ', err );
res.status(500).send({ error: err });
return;
}
console.log(JSON.stringify(rows));
res.json(rows);
});
});
app.get('/api/stories/:email', function (req, res) {
var msg = 'get story from email: ' + req.params.email;
console.log(msg);
var result = db.all('SELECT * FROM story WHERE email = ? ', req.params.email,
function(err,rows){
if(err){
console.log('error: ', err );
res.status(500).send({ error: err });
return;
}
console.log(JSON.stringify(rows));
res.json(rows);
});
});
app.listen(3000, '0.0.0.0', function () {
console.log('listening on port 3000');
});