Skip to content

Commit

Permalink
feature(connect create staffs to database):
Browse files Browse the repository at this point in the history
connect create staffs to database
[Starts #165443117]
  • Loading branch information
Cavdy committed Apr 19, 2019
1 parent ef4cb78 commit 4accf14
Show file tree
Hide file tree
Showing 22 changed files with 484 additions and 308 deletions.
2 changes: 0 additions & 2 deletions server/v1/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import debug from 'debug';
import swaggerUi from 'swagger-ui-express';
import swaggerDocument from '../swagger';
import RegisterRoute from './routes/register';
import CreateStaffRoute from './routes/createStaffs';
import LoginRoute from './routes/login';
import CreateAccountRoute from './routes/createAccount';
import TransactionRoute from './routes/transaction';
Expand All @@ -32,7 +31,6 @@ app.get('/', (req, res) => {
// creating the api version route
app.use('/api/auth/signup', RegisterRoute);
app.use('/api/auth/signin', LoginRoute);
app.use('/api/auth/addstaff', jwtMiddleware.checkToken, CreateStaffRoute);
app.use('/api/v1/accounts', jwtMiddleware.checkToken, CreateAccountRoute);
app.use('/api/v1/transactions', jwtMiddleware.checkToken, TransactionRoute);
app.use('/api/v1/users', jwtMiddleware.checkToken, UsersRoute);
Expand Down
49 changes: 25 additions & 24 deletions server/v1/controllers/createAccount.js
Original file line number Diff line number Diff line change
@@ -1,47 +1,48 @@
import CreateAccountService from '../services/createAccount';
import statusHelper from '../helper/statusHelper';

const CreateAccountController = {
async createAccount(req, res) {
const accountData = req.body;
const createdAccount = await CreateAccountService
.createAccount(accountData, req.authorizedData);
return res.json({
status: 'success',
data: createdAccount,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, createdAccount.returnStatus, createdAccount.returnError, createdAccount.returnSuccess);
return data;
},

// all accounts
async allAccounts(req, res) {
const queryParams = req.query.status;
const allAccounts = await CreateAccountService
.allAccounts(queryParams);
return res.json({
status: 'success',
data: allAccounts,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, allAccounts.returnStatus, allAccounts.returnError, allAccounts.returnSuccess);
return data;
},

// specific account
async specificAccounts(req, res) {
const { accountNumber } = req.params;
const specificAccounts = await CreateAccountService
.specificAccounts(accountNumber);
return res.json({
status: 'success',
data: specificAccounts,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, specificAccounts.returnStatus, specificAccounts.returnError, specificAccounts.returnSuccess);
return data;
},

// get transaction history
async allAccountTransaction(req, res) {
const { accountNumber } = req.params;
const transactionHistory = await CreateAccountService
.allAccountTransaction(accountNumber);
return res.json({
status: 'success',
data: transactionHistory,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, transactionHistory.returnStatus, transactionHistory.returnError, transactionHistory.returnSuccess);
return data;
},

// patchAccount
Expand All @@ -50,21 +51,21 @@ const CreateAccountController = {
const accountStatus = req.body;
const updatedAccount = await CreateAccountService
.patchAccount(accountNumber, accountStatus, req.authorizedData);
return res.json({
status: 'success',
data: updatedAccount,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, updatedAccount.returnStatus, updatedAccount.returnError, updatedAccount.returnSuccess);
return data;
},

// deleteAccount
async deleteAccount(req, res) {
const { accountNumber } = req.params;
const deleteAccount = await CreateAccountService
.deleteAccount(accountNumber, req.authorizedData);
return res.json({
status: 'success',
data: deleteAccount,
}).status(200);

const data = await statusHelper
.statusHelper('nothing', res, deleteAccount.returnStatus, deleteAccount.returnError, deleteAccount.returnSuccess);
return data;
},
};

Expand Down
16 changes: 0 additions & 16 deletions server/v1/controllers/createStaffs.js

This file was deleted.

10 changes: 5 additions & 5 deletions server/v1/controllers/login.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import LoginService from '../services/login';
import statusHelper from '../helper/statusHelper';

const LoginController = {
async loginUser(req, res) {
const userData = req.body;
const loggedUser = await LoginService.loginUser(userData, req.signintoken);

const loggedUser = await LoginService.loginUser(userData, req.token);
res.json({
status: 'success',
data: loggedUser,
}).status(201);
const data = await statusHelper
.statusHelper('nothing', res, loggedUser.returnStatus, loggedUser.returnError, loggedUser.returnSuccess);
return data;
},
};

Expand Down
20 changes: 15 additions & 5 deletions server/v1/controllers/register.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
import RegisterService from '../services/register';
import statusHelper from '../helper/statusHelper';

const RegisterController = {
async registerUser(req, res) {
const userData = req.body;
const createdUser = await RegisterService.registerUser(userData, req.signintoken);

const createdUser = await RegisterService.registerUser(userData, req.token);
return res.json({
status: 'success',
data: createdUser,
}).status(201);
const data = await statusHelper
.statusHelper('nothing', res, createdUser.returnStatus, createdUser.returnError, createdUser.returnSuccess);
return data;
},

async createStaffs(req, res) {
const userData = req.body;
const createdStaff = await RegisterService
.createStaffs(userData, req.signintoken, req.authorizedData);

const data = await statusHelper
.statusHelper('nothing', res, createdStaff.returnStatus, createdStaff.returnError, createdStaff.returnSuccess);
return data;
},
};

Expand Down
25 changes: 13 additions & 12 deletions server/v1/controllers/transaction.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,38 @@
/* eslint-disable consistent-return */
import TransactionService from '../services/transaction';
import statusHelper from '../helper/statusHelper';

const TransactionController = {
async debitTransaction(req, res) {
const { accountNumber } = req.params;
const transactionData = req.body;
const debitedData = await TransactionService
.debitTransaction(accountNumber, req.authorizedData, transactionData);
return res.json({
status: 'success',
data: debitedData,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, debitedData.returnStatus, debitedData.returnError, debitedData.returnSuccess);
return data;
},

async getSpecificTransaction(req, res) {
const { transactionid } = req.params;
const getTransaction = await TransactionService
.getSpecificTransaction(transactionid);
return res.json({
status: 'success',
data: getTransaction,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, getTransaction.returnStatus, getTransaction.returnError, getTransaction.returnSuccess);
return data;
},

async creditTransaction(req, res) {
const { accountNumber } = req.params;
const transactionData = req.body;
const creditedData = await TransactionService
.creditTransaction(accountNumber, req.authorizedData, transactionData);
return res.json({
status: 'success',
data: creditedData,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, creditedData.returnStatus, creditedData.returnError, creditedData.returnSuccess);
return data;
},
};

Expand Down
25 changes: 13 additions & 12 deletions server/v1/controllers/users.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
import UserService from '../services/users';
import statusHelper from '../helper/statusHelper';

const UsersController = {
async getAllUsers(req, res) {
const allUsers = await UserService.getAllUsers(req.authorizedData);
return res.json({
status: 'success',
data: allUsers,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, allUsers.returnStatus, allUsers.returnError, allUsers.returnSuccess);
return data;
},

async getUsersAccounts(req, res) {
const { email } = req.params;
const getUsersAccounts = await UserService.getUsersAccounts(email);
return res.json({
status: 'success',
data: getUsersAccounts,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, getUsersAccounts.returnStatus, getUsersAccounts.returnError, getUsersAccounts.returnSuccess);
return data;
},

async deleteUser(req, res) {
const { id } = req.params;
const deleteUser = await UserService.deleteUser(id, req.authorizedData);
return res.json({
status: 'success',
data: deleteUser,
}).status(201);

const data = await statusHelper
.statusHelper('nothing', res, deleteUser.returnStatus, deleteUser.returnError, deleteUser.returnSuccess);
return data;
},
};

Expand Down
56 changes: 56 additions & 0 deletions server/v1/helper/statusHelper.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/* eslint-disable no-else-return */
const statusHelper = {
async statusHelper(req, res, status, error, data) {
if (status === 401) { // unauthorized
res.status(401);
return res.json({
status: 401,
data: error,
});
} else if (status === 500) { // internal error
res.status(500);
return res.json({
status: 500,
data: 'Internal Server Error',
});
} else if (status === 409) { // conflict
res.status(409);
return res.json({
status: 409,
data: error,
});
} else if (status === 201) { // created
res.status(201);
return res.json({
status: 201,
data,
});
} else if (status === 200) { // success
res.status(200);
return res.json({
status: 200,
data,
});
} else if (status === 404) { // not found
res.status(404);
return res.json({
status: 404,
data: error,
});
} else if (status === 204) { // no content
res.status(204);
return res.json({
status: 204,
data: error,
});
} else if (status === 422) {
res.status(422);
return res.json({ // unprocessable entity
status: 422,
data: error,
});
}
},
};

export default statusHelper;
12 changes: 6 additions & 6 deletions server/v1/middleware/jwt.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@ const jwtMiddleware = {
res.sendStatus(403);
}
},
verifyJwt(req, res, next) {
jwt.verify(req.token, process.env.JWTSECRETKEY, (err, authorizedData) => {
signinJwt(req, res, next) {
jwt.sign(req.body, process.env.JWTSECRETKEY, async (err, token) => {
if (err) {
return res.sendStatus(403);
}
req.authorizedData = authorizedData;
req.signintoken = token;
return next();
});
},
signinJwt(req, res, next) {
jwt.sign(req.body, process.env.JWTSECRETKEY, async (err, token) => {
verifyJwt(req, res, next) {
jwt.verify(req.token, process.env.JWTSECRETKEY, (err, authorizedData) => {
if (err) {
return res.sendStatus(403);
}
req.token = token;
req.authorizedData = authorizedData;
return next();
});
},
Expand Down
10 changes: 0 additions & 10 deletions server/v1/routes/createStaffs.js

This file was deleted.

1 change: 1 addition & 0 deletions server/v1/routes/register.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ const router = express.Router();

// creating our routes
router.post('/', jwtMiddleware.signinJwt, RegisterController.registerUser);
router.post('/addstaff', jwtMiddleware.checkToken, jwtMiddleware.signinJwt, jwtMiddleware.verifyJwt, RegisterController.createStaffs);

export default router;
Loading

0 comments on commit 4accf14

Please sign in to comment.