Skip to content

Commit ccaad33

Browse files
committed
fix(translations): do not replace geonames name.default with value from whosonfirst
1 parent f12ee04 commit ccaad33

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

middleware/changeLanguage.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
var field = require('../helper/fieldValue');
2-
var logger = require( 'pelias-logger' ).get( 'api' );
1+
const field = require('../helper/fieldValue');
2+
const logger = require( 'pelias-logger' ).get( 'api' );
33
const _ = require('lodash');
44

5+
// note: responses from the language service are (at time of writing)
6+
// all from the 'whosonfirst' source.
7+
const LANG_SERVICE_SOURCE = 'whosonfirst';
8+
59
/**
610
example response from language web service:
711
{
@@ -112,7 +116,7 @@ function updateDocs( req, res, translations ){
112116

113117
// if the record is an admin record we also translate
114118
// the 'name.default' property.
115-
if( adminKey === doc.layer ){
119+
if( adminKey === doc.layer && doc.source === LANG_SERVICE_SOURCE ){
116120
doc.name.default = translations[id].names[ requestLanguage ][0];
117121
}
118122
}

test/unit/middleware/changeLanguage.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ module.exports.tests.success_conditions = (test, common) => {
144144
data: [
145145
// doc with 2 layer names that will be changed
146146
{
147+
source: 'whosonfirst',
147148
name: {
148149
default: 'original name for 1st result'
149150
},
@@ -161,6 +162,7 @@ module.exports.tests.success_conditions = (test, common) => {
161162
{},
162163
// doc with only 1 layer name that will be changed and no default name change
163164
{
165+
source: 'whosonfirst',
164166
name: {
165167
default: 'original name for 2nd result'
166168
},
@@ -184,6 +186,7 @@ module.exports.tests.success_conditions = (test, common) => {
184186
},
185187
// doc with name that will be translated
186188
{
189+
source: 'whosonfirst',
187190
name: {
188191
default: 'original name for 4th result',
189192
'requested language': 'translated name'
@@ -197,6 +200,7 @@ module.exports.tests.success_conditions = (test, common) => {
197200
},
198201
// doc with name that will be translated
199202
{
203+
source: 'whosonfirst',
200204
name: {
201205
default: 'original name for 5th result',
202206
'random language': 'translated name'
@@ -207,6 +211,18 @@ module.exports.tests.success_conditions = (test, common) => {
207211
layer1_id: ['1'],
208212
layer1: ['original name for layer1']
209213
}
214+
},
215+
// geonames record will have parents translated but not default name
216+
{
217+
source: 'geonames',
218+
name: {
219+
default: 'geonames name'
220+
},
221+
layer: 'locality',
222+
parent: {
223+
layer1_id: ['1'],
224+
layer1: ['original name for layer1']
225+
}
210226
}
211227
]
212228
};
@@ -221,6 +237,7 @@ module.exports.tests.success_conditions = (test, common) => {
221237
t.deepEquals(res, {
222238
data: [
223239
{
240+
source: 'whosonfirst',
224241
name: {
225242
default: 'replacement name for layer1'
226243
},
@@ -235,6 +252,7 @@ module.exports.tests.success_conditions = (test, common) => {
235252
undefined,
236253
{},
237254
{
255+
source: 'whosonfirst',
238256
name: {
239257
default: 'original name for 2nd result'
240258
},
@@ -253,6 +271,7 @@ module.exports.tests.success_conditions = (test, common) => {
253271
}
254272
},
255273
{
274+
source: 'whosonfirst',
256275
name: {
257276
default: 'translated name',
258277
'requested language': 'translated name'
@@ -264,6 +283,7 @@ module.exports.tests.success_conditions = (test, common) => {
264283
}
265284
},
266285
{
286+
source: 'whosonfirst',
267287
name: {
268288
default: 'original name for 5th result',
269289
'random language': 'translated name'
@@ -273,6 +293,17 @@ module.exports.tests.success_conditions = (test, common) => {
273293
layer1_id: ['1'],
274294
layer1: ['replacement name for layer1']
275295
}
296+
},
297+
{
298+
source: 'geonames',
299+
name: {
300+
default: 'geonames name'
301+
},
302+
layer: 'locality',
303+
parent: {
304+
layer1_id: ['1'],
305+
layer1: ['replacement name for layer1']
306+
}
276307
}
277308
]
278309
});

0 commit comments

Comments
 (0)