Skip to content

Commit 58ba76d

Browse files
committed
Swagger docs implemented.
1 parent 326e95a commit 58ba76d

File tree

8 files changed

+339
-26
lines changed

8 files changed

+339
-26
lines changed

NodeServerBackendBackup

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,2 @@
1-
RUN SQL SERVER
2-
/usr/local/mysql/bin/mysql -u root -p
31

4-
UPDATE mysql.USER
5-
SET plugin = OLD_PASSWORD('Akash@28')
6-
WHERE USER='root'
7-
AND host='localhost';
8-
9-
UPDATE mysql.user
10-
SET password='Akash@28' WHERE user='root';
11-
FLUSH PRIVILEGES;
2+

README.md

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,42 @@
11
# nodeserver-backend-boilerplate
22

3-
> Boilerplate for API Server written in Node.js and ES6.
3+
> A complete initial boilerplate for API Server written in Node.js and ES6.
44
5-
## Requirements
5+
## Key feature
6+
1.
7+
# API exposed
8+
> /api/v1/register -For signUp.
9+
> /api/v1/login -For logIn.
10+
> /api/v1/logout -For logOut.
11+
> /api/v1/resetPassword -For reset password.
12+
> /api/v1/updatePassword -For update password.
13+
14+
2.
15+
# Proper error handling.
16+
17+
3.
18+
# nodemailer implemented for Reset Password.
19+
20+
4.
21+
# For encryption/decryption, methods have been written in CRYPT.JS
22+
23+
5.
24+
# All APIs can be seen in SWAGGER DOCS on http://localhost:5001/api-docs/
625

7-
## API exposed
8-
> /register -For signUp.
9-
> /login -For logIn.
10-
> /logout -For logOut.
11-
> /resetPassword -For reset password.
26+
# swagger configuration
27+
- After starting the server in development mode swagger can be run with this url.
28+
http://localhost:5001/api-docs/
1229

30+
- After adding any new API, need to update SWAGGER.js for that API.
31+
32+
# nodemailer configuration
33+
- To configure email service, need to update CONSTANT.JS.
34+
- In CONSTANT.js, encrypted password should be used.For encryption/decryption, methods have been written in CRYPT.JS
35+
36+
## Requirements
37+
To start any WEB or MOBILE application, we need complete package of REST APIs
38+
like signup/login/logout/resetPassword/UpdatePassword.
39+
This boilerplate can be used.
1340

1441
## Dependencies
1542

@@ -36,5 +63,4 @@ npm run build
3663
# run for production.
3764
npm run serve
3865
```
39-
4066
## License

config/database-config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ export default {
33
host: 'localhost',
44
user: 'root',
55
password: 'Akash@28',
6-
database: 'user',
7-
//port: 5432,
6+
database: 'book_finder',
7+
port: 3306,
88
max: 10, //set pool max size to 20
99
min: 2, //set min pool size to 4
1010
//idleTimeoutMillis: 5000 //close idle clients after 5 second

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"mysql": "^2.15.0",
3434
"nodemailer": "^4.6.4",
3535
"restify-errors": "^6.0.0",
36+
"swagger-ui-express": "^3.0.9",
3637
"winston": "^2.4.2"
3738
}
3839
}

src/models/User.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ export function saveUserDetails(name, email, password, next) {
4444
console.log('Save userDetails get connection SqlError...', sqlError);
4545
return next(new error.InternalServerError(ERROR_MESSAGE.SOMETING_WENT_WRONG));
4646
}
47-
let sql = 'INSERT INTO USER (name, email,password,jwt_token) VALUES ?';
47+
let sql = 'INSERT INTO USER (name, email,password,jwt_token,reset_password_token) VALUES ?';
4848
let jwtToken = generateJwtToken(name, email);
4949
let values = [
50-
[name, email, encryptPassword(password), jwtToken]
50+
[name, email, encryptPassword(password), jwtToken,null]
5151
];
5252
connection.query(sql, [values], function (err, result) {
5353
connection.release();

src/routers/authRouter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as authController from '../controllers/authController.js';
33
export default (router) => {
44
router.post('/register', authController.signUp);
55
router.patch('/login', authController.logIn);
6-
router.patch('/logout', authController.logOut);
6+
router.delete('/logout', authController.logOut);
77
router.patch('/resetPassword', authController.resetPassword);
88
router.patch('/updatePassword', authController.updatePassword);
99

src/server.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import express from 'express';
22
import bodyParser from 'body-parser';
33
import cookieParser from 'cookie-parser';
44
import multer from 'multer';
5-
import mysql from 'mysql';
6-
import databaseConfig from '../config/database-config';
5+
import swaggerUi from'swagger-ui-express';
6+
import swaggerDocument from './swagger';
7+
78
import rootRouter from './routers/index';
89
import { customErrorHandler, uncaughtExceptionHandler, pgPoolErrorHandler } from './middlewares/errorHandlers';
910
var upload = multer();
@@ -12,6 +13,8 @@ var upload = multer();
1213
var app = express();
1314

1415
/***************** Middleware before routing **************/
16+
17+
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
1518
/** Error handler */
1619
//An error handling middleware
1720
// TODOprocess.on('uncaughtException', uncaughtExceptionHandler(app));
@@ -29,7 +32,7 @@ app.use(cookieParser());
2932
// let connectionConfig = databaseConfig[process.env.NODE_ENV];
3033
// let connectionPool = mysql.createPool(connectionConfig);
3134
/** Root Router */
32-
app.use('/', rootRouter,function(next){
35+
app.use('/api/v1', rootRouter,function(next){
3336
next();
3437
});
3538

0 commit comments

Comments
 (0)