Skip to content

Commit 7a58c1d

Browse files
committed
bluzi#198 feature: Get translation (/:name/:language) - Should return the translation of :name in :language
1 parent 135b5ee commit 7a58c1d

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

api/routes.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,10 @@ router.get('/search/:term', (req, res, next) => {
2020
.catch(err => res.status(404).send({ err: true, debug: err }));
2121
});
2222

23+
router.get('/:name/:language', (req, res, next) => {
24+
utils.getTranslation(req.params.name, req.params.language)
25+
.then(results => res.status(200).send(results).end())
26+
.catch(err => res.status(404).send({ err: true, debug: err }));
27+
});
28+
2329
module.exports = router;

api/utils.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@ module.exports.searchTerm = (term) => {
4343
});
4444
}
4545

46+
module.exports.getTranslation = (name, language) => {
47+
return new Promise((resolve, reject) => {
48+
db.query(`SELECT value FROM translations WHERE name = ${db.escape(name)} AND language = ${db.escape(language)}`, (err, value, fields) => {
49+
if (err) return reject(err);
50+
if (!value || !value.length) return reject(`Could not find '${language}' translation for '${name}' in the database`);
51+
52+
return resolve(value[0]);
53+
});
54+
});
55+
}
56+
4657
module.exports.generatePublicObject = (name) => {
4758
return new Promise((resolve, reject) => {
4859
db.query(`SELECT * FROM meanings WHERE name = ${db.escape(name)}`, (err, meaning, fields) => {

0 commit comments

Comments
 (0)