Skip to content

Instantly share code, notes, and snippets.

@KaranSantra
Last active July 8, 2021 18:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KaranSantra/4d089265d756cf0159f10a4ebd59ca1a to your computer and use it in GitHub Desktop.
Save KaranSantra/4d089265d756cf0159f10a4ebd59ca1a to your computer and use it in GitHub Desktop.
Features of clean code architecture-node app
function adaptRequest(req = {}) {
return Object.freeze({
path: req.path,
// adaptedRequest key : express' request key
method: req.method,
pathParams: req.params,
queryParams: req.query,
body: req.body,
url: req.originalUrl,
user: req.user,
session: req.session,
});
}
module.exports = adaptRequest;
const express = require('express');
const router = express.Router();
const propertyController = require('../../controller/admin/property');
const adaptRequest = require('../../helpers/adaptRequest');
const sendResponse = require('../../helpers/sendResponse');
const auth = require('../../middleware/auth');
router.post('/admin/property/create', auth(…['createByAdminInAdminPlatform']), (req, res, next) => {
req = adaptRequest(req);
propertyController.addProperty({
data: req.body,
loggedInUser: req.user
})
.then((result) => {
sendResponse(res, result);
a
})
.catch((e) => {
sendResponse(res, e);
});
});
// ...
function sendResponse(response, result){
return response
.set(result.headers)
.status(result.statusCode)
.send(result.data);
};
module.exports = sendResponse;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment