-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroutes.js
More file actions
130 lines (112 loc) · 3.44 KB
/
routes.js
File metadata and controls
130 lines (112 loc) · 3.44 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
123
124
125
126
127
128
129
130
const express = require("express");
const bodyParser = require("body-parser");
const mysql = require("mysql");
const cors = require("cors");
const app = express();
const port = 3000;
// MySQL database connection pool
const pool = mysql.createPool({
host: "localhost",
user: "root",
password: "SmeIsTheBest26",
database: "ngo",
});
// Middleware
app.use(cors()); // Enable CORS
app.use(bodyParser.json()); // Parse JSON request body
// Route to handle POST request to save QR code to database
app.post("/save-qr", (req, res) => {
const qrText = req.body.qrText;
if (!qrText) {
return res
.status(400)
.json({ error: true, message: "QR Text is required" });
}
pool.getConnection((err, connection) => {
if (err) {
console.error("Database connection failed:", err.stack);
return res
.status(500)
.json({ error: true, message: "Database connection failed" });
}
const insertQuery =
"INSERT INTO qr_code (Gen_ID, date_time) VALUES (?, NOW())";
connection.query(insertQuery, [qrText], (error, results, fields) => {
connection.release(); // Release connection
if (error) {
console.error("Failed to insert data:", error);
return res
.status(500)
.json({ error: true, message: "Failed to insert data" });
}
res.json({
error: false,
message: "QR code has been saved successfully.",
data: results,
});
});
});
});
// Route to get the last 5 generated QR codes with their scan info if available
app.get("/get-last-qr-codes", (req, res) => {
pool.getConnection((err, connection) => {
if (err) {
console.error("Database connection failed:", err.stack);
return res
.status(500)
.json({ error: true, message: "Database connection failed" });
}
const selectQuery = `
SELECT * FROM qr_code ORDER BY date_time DESC LIMIT 5`;
connection.query(selectQuery, (error, results, fields) => {
connection.release(); // Release connection
if (error) {
console.error("Failed to fetch data:", error);
return res
.status(500)
.json({ error: true, message: "Failed to fetch data" });
}
res.json({
error: false,
data: results.reverse(),
});
});
});
});
// Route to handle POST request to save scanned QR code to database
app.post("/save-scan", (req, res) => {
const qrText = req.body.qrText;
if (!qrText) {
return res
.status(400)
.json({ error: true, message: "QR Text is required" });
}
pool.getConnection((err, connection) => {
if (err) {
console.error("Database connection failed:", err.stack);
return res
.status(500)
.json({ error: true, message: "Database connection failed" });
}
const insertQuery =
"INSERT INTO scan (Gen_ID,scan_date_time) VALUES (?, NOW())";
connection.query(insertQuery, [qrText], (error, results, fields) => {
connection.release(); // Release connection
if (error) {
console.error("Failed to insert data:", error);
return res
.status(500)
.json({ error: true, message: "Failed to insert data" });
}
res.json({
error: false,
message: "Scanned QR code has been saved successfully.",
data: results,
});
});
});
});
// Start server
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});