fix bug in "lang=badvalue" handling for wikidata api

see https://github.com/openstreetmap/iD/pull/9638#issuecomment-1623497481
This commit is contained in:
Martin Raifer
2023-07-07 12:49:55 +02:00
parent b1121b1175
commit ea054a00a5
2 changed files with 8 additions and 4 deletions

View File

@@ -17,7 +17,7 @@ export default {
// Search for Wikidata items matching the query
itemsForSearchQuery: function _itemsForSearchQuery(query, callback, language) {
itemsForSearchQuery: function(query, callback, language) {
if (!query) {
if (callback) callback('No query', {});
return;
@@ -40,13 +40,14 @@ export default {
});
d3_json(url)
.then(function(result) {
.then(result => {
if (result && result.error) {
if (result.error.code === 'badvalue' &&
result.error.info.includes(lang) &&
!language && lang.includes('-')) {
// retry without "country suffix" region subtag
_itemsForSearchQuery(query, callback, lang.split('-')[0]);
this.itemsForSearchQuery(query, callback, lang.split('-')[0]);
return;
} else {
throw new Error(result.error);
}

View File

@@ -146,7 +146,10 @@ export function uiFieldWikidata(field, context) {
}
wikidata.itemsForSearchQuery(q, function(err, data) {
if (err) return;
if (err) {
if (err !== 'No query') console.error(err);
return;
}
var result = data.map(function (item) {
return {