-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtimetable.js
More file actions
87 lines (84 loc) · 2.83 KB
/
timetable.js
File metadata and controls
87 lines (84 loc) · 2.83 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
const express = require('express');
const router = express.Router();
const authJWT = require('./middleware/authJWT');
var mysql = require('mysql2/promise');
var db = mysql.createPool({
host: process.env.mysql_host,
port: process.env.mysql_port,
user: process.env.mysql_user,
password: process.env.mysql_password,
database: process.env.mysql_database,
connectionLimit: 10,
connectTimeout: 10000
});
router.put('/', authJWT, async(req,res)=>{
let conn = null;
try{
const cut = (value) => {return value.substr(1, value.length - 2)};
const query= `update TimeTable set sun = ${req.body.sun}, mon = ${req.body.mon},tue = ${req.body.tue}, wed = ${req.body.wed},
thur = ${req.body.thur}, fri = ${req.body.fri}, sat = ${req.body.sat} where user_id = ${req.user_id}`;
conn = await db.getConnection();
await conn.query(query);
conn.release();
return res.status(200).send({
isSuccess: true,
code: 200,
message: 'update Timetable success',
});
}catch(err){
return res.status(500).send({
isSuccess: false,
message: 'update Timetable fail',
});
}
});
router.get(`/my`, authJWT, async(req, res)=>{
let conn = null;
try{
const query = `select sun, mon, tue, wed, thur, fri, sat from TimeTable where user_id = ${req.user_id}`;
console.log(query);
conn = await db.getConnection();
const [result] = await conn.query(query);
conn.release();
return res.status(200).send({
isSuccess: true,
code: 200,
message: 'Get Timetable success',
data: result,
});
}catch(err){
return res.status(500).send({
isSuccess: false,
message: 'update Timetable fail',
});
}
})
router.delete('/', authJWT, async(req, res)=>{
let conn = null;
try{
const query1 = `select Exists(select * from TimeTable where user_id = ${req.user_id}) as success`;
const query2 = `update TimeTable SET sun = ${0}, mon = ${0},tue = ${0}, wed = ${0}, thur = ${0}, fri = ${0}, sat = ${0} `;
conn = await db.getConnection();
// start transaction
conn.beginTransaction();
const [result] = await conn.query(query1);
if(result[0] == null)throw Error();
await conn.query(query2);
// end Transaction
await conn.commit();
conn.release();
return res.status(200).send({
isSuccess: true,
code: 200,
message: 'delete Timetable success',
});
}catch(err){
await conn.rollback();
conn.release();
return res.status(500).send({
isSuccess: false,
message: 'delete Timetable fail',
});
}
})
module.exports = router;