Skip to content

Commit 9c1811c

Browse files
dcdsc
1 parent 2cfd049 commit 9c1811c

File tree

5 files changed

+122
-79
lines changed

5 files changed

+122
-79
lines changed

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 () {

routes/booking/booking.yaml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,30 @@ paths:
6363
401:
6464
description: Unauthorized
6565
502:
66-
description: Server Error
66+
description: Server Error
67+
/book_flight/{schedule_id}:
68+
post:
69+
tags:
70+
- Booking
71+
parameters:
72+
- name: schedule_id
73+
in: path
74+
required: true
75+
type: string
76+
- name: body
77+
in: body
78+
schema:
79+
required:
80+
- seat_id
81+
- user_id
82+
properties:
83+
seat_id:
84+
type: number
85+
user_id:
86+
type: number
87+
consumes:
88+
- application/json
89+
responses:
90+
200:
91+
description: OK
92+
schema:

routes/reg_user/index.js

Lines changed: 22 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -8,50 +8,17 @@ const Joi_schema=require('../../validation/book_fight_schema');
88

99
router.get('/:id', async (req, res) => {
1010
let id_params = {id:req.params['id']};
11-
//let query = "select * from user inner join registered_user using(user_id) where user.user_id = ?";
12-
// connection.query(query, [id], (error, results, fields) => {
13-
// let json_response = json_response_model(); //returns a new object
14-
// let status_code = 404;
15-
// if (error) {
16-
// json_response.success = false;
17-
// json_response.message = "Internal server error";
18-
// logger.log(error);
19-
// status_code = 502;
20-
// } else if (!results.length) {
21-
// json_response.success = false;
22-
// json_response.message = "No user found";
23-
// status_code = 404;
24-
// } else {
25-
// json_response.success = true;
26-
// json_response.message = "Success";
27-
// let person = {};
28-
// results = results[0];
29-
// person['user_id'] = results['user_id'];
30-
// person['first_name'] = results['first_names'];
31-
// person['email'] = results['email'];
32-
// person['nic'] = results['nic'];
33-
// person['passport_id'] = results['passport_id'];
34-
// json_response.data.push(person);
35-
// console.log(results);
36-
// status_code = 200;
37-
//
38-
// }
39-
// res.status(status_code).json(json_response);
40-
//
41-
// })
4211
let user = new RegUser();
4312
let json_response = json_response_model();
4413
try {
4514
await Joi_schema.id_schema.validateAsync(id_params);
4615
let results = await user.getUserById(id_params.id);
47-
//console.log(results);
48-
let person = {};
4916
let send_results = results[0];
5017
send_results['password'] = null;
18+
json_response.success = true;
5119
json_response.data.push(send_results);
5220
res.status(200).json(json_response);
5321
} catch (e) {
54-
// console.log(e._message);
5522
json_response.message = e;
5623
let code = e.statusCode || 502;
5724
if (e._message==null && e.details[0].message ){
@@ -66,54 +33,36 @@ router.get('/:id', async (req, res) => {
6633

6734
//Sign in route
6835
router.post('/', async(req, res) => {
69-
let first_names = req.body.first_names;
36+
let first_name = req.body.first_name;
7037
let second_name = req.body.second_name;
7138
let email = req.body.email;
7239
let nic = req.body.nic;
7340
let passport_id = req.body.passport_id;
41+
let birthday = req.body.birthday;
7442
let username = req.body.username;
7543
let password = req.body.password;
76-
let query =
77-
" insert into user(first_names, second_name, email, nic, passport_id) VALUES (?,?,?,?,?);" +
78-
"insert into registered_user(username, password) values(?,?);";
44+
45+
let user = new RegUser();
7946
let json_response = json_response_model();
80-
connection.beginTransaction((err) => {
81-
if (err) {
82-
connection.rollback();
83-
json_response.success = false;
84-
json_response.message = "Internal server error";
85-
logger.log(err);
86-
console.log(err);
87-
res.status(502).json(json_response);
47+
try {
48+
console.log(first_name, second_name, email, nic, passport_id, birthday, username, password);
49+
let results = await user.addUser(first_name, second_name, email, nic, passport_id, birthday, username, password);
50+
json_response.success = true;
51+
let send_results = results[0];
52+
json_response.message = "Successfully added " + first_name;
53+
res.status(200).json(json_response);
54+
} catch (e) {
55+
json_response.message = e;
56+
let code = e.statusCode || 502;
57+
if (e._message == null && e.details[0].message) {
58+
code = 400;
59+
json_response.message = e.details[0].message;
60+
res.status(code).json(json_response);
8861
} else {
89-
connection.query(query, [first_names, second_name, email, nic, passport_id, username, password], function (err, results) {
90-
if (err) {
91-
connection.rollback();
92-
json_response.success = false;
93-
json_response.message = "Invalid credentials";
94-
logger.log(err);
95-
console.log(err);
96-
res.status(400).json(json_response);
97-
} else {
98-
connection.commit(function (err) {
99-
if (err) {
100-
connection.rollback();
101-
json_response.success = false;
102-
json_response.message = "Internal server error";
103-
logger.log(err);
104-
console.log(err);
105-
res.status(502).json(json_response);
106-
} else {
107-
//res.send
108-
json_response.success = true;
109-
json_response.message = "Success";
110-
res.status(200).json(json_response);
111-
}
112-
})
113-
}
114-
})
62+
res.status(code).json(json_response);
11563
}
116-
})
64+
res.status(502).send();
65+
}
11766

11867

11968
});

routes/reg_user/reg_user.yaml

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,16 @@ paths:
106106
schema:
107107
type: object
108108
required:
109-
- first_names
109+
- first_name
110110
- second_name
111111
- email
112112
- nic
113113
- passport_id
114+
- birthday
114115
- username
115116
- password
116117
properties:
117-
first_names:
118+
first_name:
118119
type: string
119120
second_name:
120121
type: string
@@ -124,6 +125,8 @@ paths:
124125
type: string
125126
passport_id:
126127
type: string
128+
birthday:
129+
type: string
127130
username:
128131
type: string
129132
password:
@@ -177,4 +180,32 @@ paths:
177180
400:
178181
description: Bad request
179182
502:
180-
description: Server Error
183+
description: Server Error
184+
/reg_user/login/:
185+
post:
186+
tags:
187+
- Registered User
188+
consumes:
189+
- application/json
190+
parameters:
191+
- name: details
192+
in: body
193+
schema:
194+
required:
195+
- email
196+
- password
197+
properties:
198+
email:
199+
type: string
200+
password:
201+
type: string
202+
responses:
203+
201:
204+
description: Token created
205+
206+
400:
207+
description: Bad request
208+
502:
209+
description: Server Error
210+
211+

transactiondb.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const mysql = require('promise-mysql');
2+
const path = require('path');
3+
const fs = require('fs');
4+
5+
let db_config = JSON.parse(fs.readFileSync(path.resolve(__dirname, "db.conf.json"), 'utf8'));
6+
7+
8+
const poolPromise = mysql.createConnection(db_config);
9+
10+
module.exports = poolPromise;

0 commit comments

Comments
 (0)