Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions mock-server/db.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"names": {
"en-US": {
"BREAD.ROOT": "bread",
"BREAD.CORN": "corn bread",
"BREAD.CROISSANT": "croissant",
"BUTTER": "butter",
"TOASTER": "toaster"
},
"pt-PT": {
"BREAD.ROOT": "pão",
"BREAD.CORN": "broa",
"BREAD.CROISSANT": "croissant",
"BUTTER": "manteiga",
"TOASTER": "torradeira"
}
},
"cultures": [
"pt-PT",
"pt-BR",
"en-GB",
"en-US",
"en-CA",
"es-ES",
"es-MX",
"fr-FR",
"fr-CA"
]
}
34 changes: 34 additions & 0 deletions mock-server/getNames.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const filterNames = (data, names) => {
const dataKeys = Object.keys(data);
const keys = names
? names
.split(',')
.reduce((arr, name) => {
if (name.substr(-2) === '.*') {
const key = name.slice(0, -2);
const filteredKeys = dataKeys.filter(item => item.indexOf(key) === 0);
arr.push(...filteredKeys);
} else {
arr.push(name);
}

return arr;
}, [])
: dataKeys;

return keys
.reduce((obj, name) => ({
...obj,
[name]: data[name],
}), {});
};

module.exports = (names, culture, data) => {
const keys = culture ? culture.split(',') : Object.keys(data);

return keys
.reduce((obj, cultureCode) => ({
...obj,
[cultureCode]: filterNames(data[cultureCode], names),
}), {});
};
25 changes: 25 additions & 0 deletions mock-server/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// eslint-disable-next-line
const jsonServer = require('json-server');
const getNames = require('./getNames');

const server = jsonServer.create();
const router = jsonServer.router('db.json');
const middlewares = jsonServer.defaults();

router.render = (req, res) => {
const { locals: { data } } = res;
const { path, query } = req;
const { names, culture } = query;

const dataHandler = {
'/names': () => getNames(names, culture, data),
}[path] || (() => data);

res.jsonp(dataHandler());
};

server.use(middlewares);
server.use(router);
server.listen(3004, () => {
console.log('-> JSON Server is running on port 3004.');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

o port podia ser uma const?

});
Loading