|
@@ -4,9 +4,17 @@ var DEFAULT_LANG = 'ES';
|
|
|
|
|
|
|
|
function selectLang(lang) {
|
|
function selectLang(lang) {
|
|
|
return function(x) {
|
|
return function(x) {
|
|
|
- var x_ = x.toObject();
|
|
|
|
|
- x_ = R.merge(x_, R.prop(lang, x_));
|
|
|
|
|
- return R.omit(LANGS, x_);
|
|
|
|
|
|
|
+ if(R.is(String, x)) {
|
|
|
|
|
+ return x;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (R.isNil(R.prop(lang, x))) {
|
|
|
|
|
+ return x;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ var x_ = x.toObject();
|
|
|
|
|
+ x_ = R.merge(x_, R.prop(lang, x_));
|
|
|
|
|
+ return R.omit(LANGS, x_);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -15,8 +23,12 @@ module.exports = function (fn) {
|
|
|
var projection = req.headers.lang ? req.headers.lang : DEFAULT_LANG;
|
|
var projection = req.headers.lang ? req.headers.lang : DEFAULT_LANG;
|
|
|
|
|
|
|
|
return fn(req, res, next).then(function (xs) {
|
|
return fn(req, res, next).then(function (xs) {
|
|
|
|
|
+
|
|
|
var result = R.is(Array, xs) ? xs.map(selectLang(projection)) : selectLang(projection)(xs);
|
|
var result = R.is(Array, xs) ? xs.map(selectLang(projection)) : selectLang(projection)(xs);
|
|
|
res.send(result);
|
|
res.send(result);
|
|
|
|
|
+ }, function (error) {
|
|
|
|
|
+ console.error('API: ', error)
|
|
|
|
|
+ res.status(500).json({error: error});
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|