-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapp.js
More file actions
122 lines (106 loc) · 3.69 KB
/
app.js
File metadata and controls
122 lines (106 loc) · 3.69 KB
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
const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const app = express();
//defining constants for the different categories of questions
const BASIC = 0;
const BEHAVIORAL = 1;
const SALARY = 2;
const BRAINTEASER = 3;
//defining response codes
const SUCCESS = 0;
const DATABASE_CONNECTION_ERROR = 100;
const DATABASE_LOOKUP_ERROR = 101;
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.post('/get-count', (req, res) => {
const db = new sqlite3.Database("interviewbot.db", (err) => {
if(err) {
console.log(err.message);
res.send(JSON.stringify({status: DATABASE_CONNECTION_ERROR}));
}
});
db.get("SELECT count(*) FROM question WHERE type_id = ?;", req.body.category, (err, number) => {
if(err) {
console.log(err.message);
res.send(JSON.stringify({status: DATABASE_LOOKUP_ERROR}));
} else {
res.send(JSON.stringify({status: SUCCESS, count: number["count(*)"]}));
}
});
db.close();
});
app.post('/get-question', (req, res) => {
const db = new sqlite3.Database("interviewbot.db", sqlite3.OPEN_READWRITE, (err) => {
if(err) {
console.log(err.message);
res.send(JSON.stringify({status: DATABASE_CONNECTION_ERROR}));
}
});
console.log(req);
let statement = db.prepare("SELECT question FROM question WHERE type_id = ?;");
statement.all(req.body.category, (err, questions) => {
console.log(questions);
if(err) {
console.log(err.message);
res.send(JSON.stringify({status: DATABASE_LOOKUP_ERROR}));
} else {
res.send(JSON.stringify({status: SUCCESS, question: questions[req.body.question].question}));
}
});
statement.finalize();
db.close();
});
app.post('/create-question', (req, res) => {
const db = new sqlite3.Database("interviewbot.db", (err) => {
if(err) {
res.send(JSON.stringify({status: DATABASE_CONNECTION_ERROR}));
}
});
let statement = db.prepare("INSERT INTO question(question,type_id) values(?,?);");
statement.run(req.body.question, req.body.category, (err) => {
if(err) {
console.log(err.message);
console.log(req.body.question + " " + req.body.category);
res.send(JSON.stringify({status: DATABASE_LOOKUP_ERROR}));
} else {
res.send(JSON.stringify({status: SUCCESS}));
}
});
statement.finalize();
db.close();
});
app.get('/get-categories', (req, res) => {
const db = new sqlite3.Database("interviewbot.db", (err) => {
if(err) {
res.send(JSON.stringify({status: DATABASE_CONNECTION_ERROR}));
}
});
db.all("SELECT type FROM type;", (err, types) => {
if(err) {
console.log(err.message);
res.send(JSON.stringify({status: DATABASE_LOOKUP_ERROR}));
} else {
res.send(JSON.stringify({status: SUCCESS, categories: types.map(el => el["type"])}));
}
});
db.close();
})
app.get('/create-categories', (req, res) => {
const db = new sqlite3.Database("interviewbot.db", (err) => {
if(err) {
res.send(JSON.stringify({status: DATABASE_CONNECTION_ERROR}));
}
});
let statement = db.prepare("INSERT INTO type(type) values(?);");
statement.run(req.body.category_name, (err) => {
if(err) {
console.log(err.message);
res.send(JSON.stringify({status: DATABASE_LOOKUP_ERROR}));
} else {
res.send(JSON.stringify({status: SUCCESS}));
}
});
statement.finalize();
db.close();
})
module.exports = app;