Skip to content

Commit 14afca4

Browse files
Merge branch 'kushan2'
2 parents 18f801f + 9c1811c commit 14afca4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+3871
-307
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
node_modules/
22
.idea
33
SE.iml
4-
package-lock.json
4+
package-lock.json
5+
debug.log
6+
exceptions.log

db.conf.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"user": "root",
44
"password": "",
55
"database": "airline",
6-
"connectionLimit": 10
6+
"connectionLimit": 10,
7+
"multipleStatements": true
78
}

exceptions.log

Lines changed: 157 additions & 0 deletions
Large diffs are not rendered by default.

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const swaggerOptions = {
2424
const swaggerDocs = swaggerJsDoc(swaggerOptions);
2525
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
2626

27-
27+
// app.use(express.json());
2828

2929

3030
app.use((req, res, next) => {

middleware/auth.js

Lines changed: 56 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,126 +1,120 @@
11
const fs = require("fs");
22
const path = require('path');
3-
const jwt = require('jsonwebtoken')
4-
const connection = require("../db");
3+
const jwt = require('jsonwebtoken');
4+
const poolPromise = require("../db");
55
const config = JSON.parse(fs.readFileSync(path.resolve(__dirname, "../env.config.json"), 'utf8'));
6-
const json_response_model = JSON.parse(fs.readFileSync(path.resolve(__dirname, "../response_format.json"), 'utf8'));
7-
6+
//const json_response_model = JSON.parse(fs.readFileSync(path.resolve(__dirname, "../response_format.json"), 'utf8'));
7+
let json_response_model = require('../json_response');
88
module.exports = {
99

10-
verifyUser: (req, res, next) => {
11-
let json_response = Object.create(json_response_model)
12-
13-
let token = req.headers['x-access-token']
10+
verifyUser: async (req, res, next) => {
11+
//let json_response = Object.create(json_response_model)
12+
let json_response = json_response_model();
13+
let token = req.headers['x-access-token'];
1414
if (!token) {
1515
json_response['success'] = false;
1616
json_response['message'] = "Login to proceed";
17-
json_response['data'] = []
18-
json_response['token'] = ''
17+
json_response['data'] = [];
18+
json_response['token'] = '';
1919
return res.status(403).json(json_response);
2020
}
2121

2222
jwt.verify(token, config.secret, (error, decoded) => {
2323
if (error) {
2424
json_response['success'] = false;
2525
json_response['message'] = "Cannot verify user";
26-
json_response['data'] = []
27-
json_response['token'] = ''
26+
json_response['data'] = [];
27+
json_response['token'] = '';
2828
return res.status(403).json(json_response);
2929
}
3030

31-
if (typeof (decoded.customerId) !== 'undefined') {
32-
req.userId = decoded.customerId
33-
req.userType = 1
34-
}
35-
else if (typeof (decoded.shopId) !=='undefined') {
36-
req.userId = decoded.shopId
37-
req.userType = 2
31+
if (typeof (decoded.user_id) !== 'undefined') {
32+
req.userId = decoded.user_id;
33+
req.userType = 'REG_USER';
34+
} else if (typeof (decoded.admin_id) !== 'undefined') {
35+
req.userId = decoded.admin_id;
36+
req.userType = 'ADMIN';
3837
}
3938
next()
4039
})
4140
},
4241

43-
isCustomer: (req, res, next) => {
44-
let json_response = Object.create(json_response_model)
45-
46-
if (req.userType === 1) {
42+
isAdmin: async (req, res, next) => {
43+
// let json_response = Object.create(json_response_model)
44+
let json_response = json_response_model();
45+
if (req.userType === 'ADMIN') {
4746
next()
48-
}
49-
else {
47+
} else {
5048
json_response['success'] = false;
5149
json_response['message'] = "Access not authorized";
52-
json_response['data'] = []
53-
json_response['token'] = req.headers['x-access-token']
50+
json_response['data'] = [];
51+
json_response['token'] = req.headers['x-access-token'];
5452
return res.status(401).json(json_response);
5553
}
5654
},
5755

58-
isShop: (req, res, next) => {
59-
let json_response = Object.create(json_response_model)
60-
61-
if (req.userType === 2) {
56+
isRegUser: (req, res, next) => {
57+
//let json_response = Object.create(json_response_model)
58+
let json_response = json_response_model();
59+
if (req.userType === 'REG_USER') {
6260
next()
63-
}
64-
else {
61+
} else {
6562
json_response['success'] = false;
6663
json_response['message'] = "Access not authorized";
67-
json_response['data'] = []
68-
json_response['token'] = req.headers['x-access-token']
64+
json_response['data'] = [];
65+
json_response['token'] = req.headers['x-access-token'];
6966
return res.status(401).json(json_response);
7067
}
7168
},
7269

73-
isSameUser: (req, res, next) => {
74-
let json_response = Object.create(json_response_model)
75-
76-
if (req.userId == req.params.id) {
70+
isSameUser: async (req, res, next) => {
71+
//let json_response = Object.create(json_response_model)
72+
let json_response = json_response_model();
73+
if (req.userId === req.params.id) {
7774
next()
78-
}
79-
else {
75+
} else {
8076
json_response['success'] = false;
8177
json_response['message'] = "Access not authorized";
82-
json_response['data'] = []
83-
json_response['token'] = req.headers['x-access-token']
78+
json_response['data'] = [];
79+
json_response['token'] = req.headers['x-access-token'];
8480
return res.status(401).json(json_response);
8581
}
8682
},
8783

88-
checkAccessToOrder: (req, res, next) => {
89-
let json_response = Object.create(json_response_model)
90-
91-
let orderId = req.params.id
92-
let userId = req.userId
93-
let userType = req.userType
84+
checkAccessToOrder: async (req, res, next) => {
85+
let json_response = Object.create(json_response_model);
86+
87+
let orderId = req.params.id;
88+
let userId = req.userId;
89+
let userType = req.userType;
9490

9591
if (userType === 1) {
9692
connection.query("select customer_id from orders where id=?", orderId, (error, results) => {
9793
if (error) {
9894
json_response['success'] = false;
9995
json_response['message'] = "Access failed";
100-
json_response['data'] = []
101-
json_response['token'] = req.headers['x-access-token']
96+
json_response['data'] = [];
97+
json_response['token'] = req.headers['x-access-token'];
10298
return res.status(503).json(json_response);
103-
}
104-
else if (results.length === 0){
99+
} else if (results.length === 0) {
105100
json_response['success'] = false;
106101
json_response['message'] = "Order does not exist";
107-
json_response['data'] = []
108-
json_response['token'] = req.headers['x-access-token']
102+
json_response['data'] = [];
103+
json_response['token'] = req.headers['x-access-token'];
109104
return res.status(400).json(json_response);
110105
}
111-
let customerId = results[0].customer_id
112-
if (customerId == userId) {
106+
let customerId = results[0].customer_id;
107+
if (customerId === userId) {
113108
return next()
114109
}
115110
json_response['success'] = false;
116111
json_response['message'] = "Access not authorized";
117-
json_response['data'] = []
118-
json_response['token'] = req.headers['x-access-token']
112+
json_response['data'] = [];
113+
json_response['token'] = req.headers['x-access-token'];
119114
return res.status(401).json(json_response);
120115
})
121-
}
122-
else if (userType === 2) {
116+
} else if (userType === 2) {
123117
next()
124118
}
125119
}
126-
}
120+
};

models/RegUser.js

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const poolPromise = require("../db");
22
const ErrorHandler = require('../error');
33
const logger = require('../logger');
4+
const bcrypt = require('bcryptjs');
45

56
function RegUser() {
67

@@ -30,10 +31,36 @@ RegUser.prototype.addUser = function (first_name,
3031
email,
3132
nic,
3233
passport_id,
33-
password,
34-
user_name) {
34+
birthday,
35+
user_name,
36+
password) {
37+
function getRandomInt(min, max) {
38+
min = Math.ceil(min);
39+
max = Math.floor(max);
40+
return Math.floor(Math.random() * (max - min + 1)) + min;
41+
}
3542

43+
let hashedPassword = bcrypt.hashSync(password, 10);
44+
let random_user_id = getRandomInt(100000000, 1000000000);
45+
//let query1 = `start transaction; insert into user(user_id,firstName, secondName, email, nic, passport_id, BirthDay,number_of_bookings,user_type) values('${random_user_id}','${first_name}','${second_name}','${email}','${nic}','${passport_id}','${birthday}',0,'bug');insert into registered_user(user_id, username, password) values('${random_user_id}','${user_name}','${hashedPassword}'); commit`; //; insert into registered_user(user_id, username, password) values(?,?,?);
46+
let query = "call add_user(?,?,?,?,?,?,?,?,?)";
47+
return new Promise((async (resolve, reject) => {
48+
try {
49+
let pool = await poolPromise;
50+
let result = await pool.query(query, [first_name, second_name, email, nic, passport_id, birthday, user_name, hashedPassword, random_user_id]);
51+
console.log(result);
52+
// if (!result.length) {
53+
// reject(new ErrorHandler(404, "No user found for id: " + random_user_id));
54+
// } else {
55+
resolve(result);
56+
// }
57+
} catch (e) {
58+
console.log(e);
59+
logger.log(e);
60+
reject(new ErrorHandler(502, "Internal Server Error"));
61+
}
3662

63+
}));
3764
};
3865

3966
RegUser.prototype.bookFlight = function () {

models/airplane.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
const poolPromise = require("../db");
2+
const ErrorHandler = require('../error');
3+
const logger = require('../logger');
4+
5+
function Airplane() {
6+
}
7+
Airplane.prototype.getallairplane= async function(){
8+
let query="SELECT airplane_id,airplane_model.model_name FROM `airplane` NATURAL JOIN airplane_model";
9+
return new Promise(async(resolve,reject)=>{
10+
try {
11+
let pool = await poolPromise;
12+
let result = await pool.query(query);
13+
if (!result.length) {
14+
reject(new ErrorHandler(404, "No airplane found"));
15+
} else {
16+
resolve(result);
17+
}
18+
} catch (e) {
19+
logger.log(e);
20+
reject(new ErrorHandler(502, "Internal Server Error"));
21+
}
22+
});
23+
}
24+
Airplane.prototype.addairplane=async function(airplane_req){
25+
let query= "INSERT INTO `airplane` (model_id) VALUES (?)";
26+
return new Promise(async(resolve,reject)=>{
27+
try {
28+
let pool = await poolPromise;
29+
let result = await pool.query(query,[airplane_req.model_id]);
30+
resolve(result);
31+
} catch (e) {
32+
if(e.sqlState==23000){
33+
reject(new ErrorHandler(404, "No airplane model found"));
34+
}else{
35+
logger.log(e);
36+
console.log(e);
37+
reject(new ErrorHandler(502, "Internal Server Error"));
38+
}
39+
}
40+
});
41+
}
42+
Airplane.prototype.deleteairplane=async function(airplane_id){
43+
let delete_query="DELETE FROM airplane WHERE airplane_id=?";
44+
return new Promise(async(resolve,reject)=>{
45+
try{
46+
let pool = await poolPromise;
47+
let result=await pool.query(delete_query,[airplane_id]);
48+
if(result.affectedRows==0){
49+
reject(new ErrorHandler(404, "Airplane not found"));
50+
}else if(result.affectedRows==1){
51+
resolve(result);
52+
}
53+
}catch(e){
54+
console.log(e);
55+
logger.log(e);
56+
reject(new ErrorHandler(502, "Internal Server Error"));
57+
}
58+
});
59+
};
60+
module.exports=Airplane;

models/airplane_model.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
const poolPromise = require("../db");
2+
const ErrorHandler = require('../error');
3+
const logger = require('../logger');
4+
5+
function Airplane_model() {
6+
7+
}
8+
Airplane_model.prototype.getallairplanemodel= async function(){
9+
let query = "SELECT airplane_model.model_id, airplane_model.model_name, a.airplane_id FROM `airplane_model` inner join airplane a on airplane_model.model_id = a.model_id";
10+
return new Promise(async(resolve,reject)=>{
11+
try {
12+
let pool = await poolPromise;
13+
let result = await pool.query(query);
14+
if (!result.length) {
15+
reject(new ErrorHandler(404, "No airplane model found"));
16+
} else {
17+
resolve(result);
18+
}
19+
} catch (e) {
20+
logger.log(e);
21+
reject(new ErrorHandler(502, "Internal Server Error"));
22+
}
23+
});
24+
}
25+
Airplane_model.prototype.addairplanemodel=async function(airplane_model_req){
26+
let query= "INSERT INTO `airplane_model` (model_id,model_name) VALUES (?,?)";
27+
return new Promise(async(resolve,reject)=>{
28+
try {
29+
let pool = await poolPromise;
30+
let result = await pool.query(query,[airplane_model_req.model_id,airplane_model_req.model_name]);
31+
resolve(result);
32+
} catch (e) {
33+
if(e.sqlState==45000){
34+
reject(new ErrorHandler(400, "Airplane model already added"));
35+
}else{
36+
logger.log(e);
37+
console.log(e);
38+
reject(new ErrorHandler(502, "Internal Server Error"));
39+
}
40+
}
41+
});
42+
}
43+
Airplane_model.prototype.deleteairplanemodel=async function(model_id){
44+
let delete_query="DELETE FROM airplane_model WHERE model_id=?";
45+
return new Promise(async(resolve,reject)=>{
46+
try{
47+
let pool = await poolPromise;
48+
let result=await pool.query(delete_query,[model_id]);
49+
if(result.affectedRows==0){
50+
reject(new ErrorHandler(404, "Airplane_model not found"));
51+
}else if(result.affectedRows==1){
52+
resolve(result);
53+
}
54+
}catch(e){
55+
if(e.sqlState==23000){
56+
reject(new ErrorHandler(400, "Airplane model can not delete"));
57+
}else{
58+
logger.log(e);
59+
// console.log(e);
60+
reject(new ErrorHandler(502, "Internal Server Error"));
61+
}
62+
}
63+
});
64+
};
65+
module.exports=Airplane_model;

0 commit comments

Comments
 (0)