add model localization middleware to integrate mongoose model binding and localization

This commit is contained in:
Dan Ribbens
2019-10-04 10:49:30 -04:00
parent 5be80a30c7
commit ad752c7b83
4 changed files with 30 additions and 19 deletions

View File

@@ -21,6 +21,7 @@ import authValidate from './auth/validate';
import authRequestHandlers from './auth/requestHandlers';
import passwordResetConfig from './auth/passwordResets/passwordReset.config';
import validateConfig from './utilities/validateConfig';
import setModelLocaleMiddleware from './mongoose/setModelLocale.middleware';
class Payload {
@@ -138,7 +139,10 @@ class Payload {
}
this.models[config.labels.singular] = model;
options.router.all(`/${config.slug}*`, bindModelMiddleware(model));
options.router.all(`/${config.slug}*`,
bindModelMiddleware(model),
setModelLocaleMiddleware()
);
options.router.route(`/${config.slug}`)
.get(config.policies.read, query)

View File

@@ -1,17 +1,16 @@
import httpStatus from 'http-status';
const create = (req, res) => {
req.model.setDefaultLocale(req.locale); // TODO - move to middleware
req.model.create(req.body, (err, result) => {
if (err)
return res.status(httpStatus.INTERNAL_SERVER_ERROR).json({ error: err });
return res.status(httpStatus.CREATED)
.json({
message: 'success',
result: result.toJSON({ virtuals: true })
});
});
};
export default create;
import httpStatus from 'http-status';
const create = (req, res) => {
req.model.create(req.body, (err, result) => {
if (err)
return res.status(httpStatus.INTERNAL_SERVER_ERROR).json({ error: err });
return res.status(httpStatus.CREATED)
.json({
message: 'success',
result: result.toJSON({ virtuals: true })
});
});
};
export default create;

View File

@@ -1,7 +1,6 @@
import httpStatus from 'http-status';
const update = (req, res) => {
req.model.setDefaultLocale(req.locale); // TODO - move to middleware
req.model.findOne({ _id: req.params.id }, '', {}, (err, doc) => {
if (!doc)
return res.status(httpStatus.NOT_FOUND).send('Not Found');

View File

@@ -0,0 +1,9 @@
const setModelLocaleMiddleware = () => {
return (req, res, next) => {
if (req.locale && req.model.setDefaultLocale)
req.model.setDefaultLocale(req.locale);
next();
};
};
export default setModelLocaleMiddleware;