Browse Source

Update middleware with new prop name

pull/457/head
Diana Shkolnikov 9 years ago
parent
commit
4ed5296d79
  1. 25
      middleware/confidenceScore.js
  2. 10
      middleware/dedupe.js
  3. 10
      middleware/localNamingConventions.js
  4. 4
      middleware/renamePlacenames.js

25
middleware/confidenceScore.js

@ -100,9 +100,10 @@ function checkForDealBreakers(req, hit) {
return true; return true;
} }
if (check.assigned(req.clean.parsed_text.postalcode) && check.assigned(hit.address) && if (check.assigned(req.clean.parsed_text.postalcode) && check.assigned(hit.address_parts) &&
req.clean.parsed_text.postalcode !== hit.address.zip) { req.clean.parsed_text.postalcode !== hit.address_parts.zip) {
logger.debug('[confidence][deal-breaker]: postalcode !== zip (' + req.clean.parsed_text.postalcode + ' !== ' + hit.address.zip + ')'); logger.debug('[confidence][deal-breaker]: postalcode !== zip (' + req.clean.parsed_text.postalcode +
' !== ' + hit.address_parts.zip + ')');
return true; return true;
} }
} }
@ -155,8 +156,8 @@ function checkName(text, parsed_text, hit) {
*/ */
function checkQueryType(text, hit) { function checkQueryType(text, hit) {
if (check.assigned(text) && check.assigned(text.number) && if (check.assigned(text) && check.assigned(text.number) &&
(check.undefined(hit.address) || (check.undefined(hit.address_parts) ||
(check.assigned(hit.address) && check.undefined(hit.address.number)))) { (check.assigned(hit.address_parts) && check.undefined(hit.address_parts.number)))) {
return 0; return 0;
} }
return 1; return 1;
@ -206,10 +207,10 @@ function propMatch(textProp, hitProp, expectEnriched) {
* @param {string} [text.state] * @param {string} [text.state]
* @param {string} [text.country] * @param {string} [text.country]
* @param {object} hit * @param {object} hit
* @param {object} [hit.address] * @param {object} [hit.address_parts]
* @param {string|number} [hit.address.number] * @param {string|number} [hit.address_parts.number]
* @param {string} [hit.address.street] * @param {string} [hit.address_parts.street]
* @param {string|number} [hit.address.zip] * @param {string|number} [hit.address_parts.zip]
* @param {Array} [hit.parent.region_a] * @param {Array} [hit.parent.region_a]
* @param {Array} [hit.parent.country_a] * @param {Array} [hit.parent.country_a]
* @returns {number} * @returns {number}
@ -219,9 +220,9 @@ function checkAddress(text, hit) {
var res = 0; var res = 0;
if (check.assigned(text) && check.assigned(text.number) && check.assigned(text.street)) { if (check.assigned(text) && check.assigned(text.number) && check.assigned(text.street)) {
res += propMatch(text.number, (hit.address ? hit.address.number : null), false); res += propMatch(text.number, (hit.address_parts ? hit.address_parts.number : null), false);
res += propMatch(text.street, (hit.address ? hit.address.street : null), false); res += propMatch(text.street, (hit.address_parts ? hit.address_parts.street : null), false);
res += propMatch(text.postalcode, (hit.address ? hit.address.zip: null), true); res += propMatch(text.postalcode, (hit.address_parts ? hit.address_parts.zip: null), true);
res += propMatch(text.state, hit.parent.region_a[0], true); res += propMatch(text.state, hit.parent.region_a[0], true);
res += propMatch(text.country, hit.parent.country_a[0], true); res += propMatch(text.country, hit.parent.country_a[0], true);

10
middleware/dedupe.js

@ -54,12 +54,12 @@ function isDifferent(item1, item2) {
propMatch(item1, item2, 'name'); propMatch(item1, item2, 'name');
} }
if (item1.hasOwnProperty('address') && item2.hasOwnProperty('address')) { if (item1.hasOwnProperty('address_parts') && item2.hasOwnProperty('address_parts')) {
propMatch(item1.address, item2.address, 'number'); propMatch(item1.address_parts, item2.address_parts, 'number');
propMatch(item1.address, item2.address, 'street'); propMatch(item1.address_parts, item2.address_parts, 'street');
propMatch(item1.address, item2.address, 'zip'); propMatch(item1.address_parts, item2.address_parts, 'zip');
} }
else if (item1.address !== item2.address) { else if (item1.address_parts !== item2.address_parts) {
throw new Error('different'); throw new Error('different');
} }
} }

10
middleware/localNamingConventions.js

@ -14,9 +14,9 @@ function applyLocalNamingConventions(req, res, next) {
res.data.filter(function(place){ res.data.filter(function(place){
// only relevant for German addresses // only relevant for German addresses
if( place.parent.country_a.indexOf('DEU') === -1 ){ return false; } if( place.parent.country_a.indexOf('DEU') === -1 ){ return false; }
if( !place.hasOwnProperty('address') ){ return false; } if( !place.hasOwnProperty('address_parts') ){ return false; }
if( !place.address.hasOwnProperty('number') ){ return false; } if( !place.address_parts.hasOwnProperty('number') ){ return false; }
if( !place.address.hasOwnProperty('street') ){ return false; } if( !place.address_parts.hasOwnProperty('street') ){ return false; }
return true; return true;
}) })
.forEach( flipNumberAndStreet ); .forEach( flipNumberAndStreet );
@ -27,8 +27,8 @@ function applyLocalNamingConventions(req, res, next) {
// DE address should have the housenumber and street name flipped // DE address should have the housenumber and street name flipped
// eg. '101 Grolmanstraße' -> 'Grolmanstraße 101' // eg. '101 Grolmanstraße' -> 'Grolmanstraße 101'
function flipNumberAndStreet(place) { function flipNumberAndStreet(place) {
var standard = ( place.address.number + ' ' + place.address.street ), var standard = ( place.address_parts.number + ' ' + place.address_parts.street ),
flipped = ( place.address.street + ' ' + place.address.number ); flipped = ( place.address_parts.street + ' ' + place.address_parts.number );
// flip street name and housenumber // flip street name and housenumber
if( place.name.default === standard ){ if( place.name.default === standard ){

4
middleware/renamePlacenames.js

@ -58,9 +58,9 @@ function renamePlacenames(req, res, next) {
* Rename the fields in one record * Rename the fields in one record
*/ */
function renameOneRecord(place) { function renameOneRecord(place) {
if (place.address) { if (place.address_parts) {
Object.keys(ADDRESS_PROPS).forEach(function (prop) { Object.keys(ADDRESS_PROPS).forEach(function (prop) {
place[ADDRESS_PROPS[prop]] = place.address[prop]; place[ADDRESS_PROPS[prop]] = place.address_parts[prop];
}); });
} }

Loading…
Cancel
Save