voice-in-phone-number

node v8.17.0
version: 4.0.0
endpointsharetweet
const { isPlainObject, has, get, isEqual } = require('lodash/fp'); const newDoc1 = { id: 1 }; const newDoc2 = { id: 2 }; const doc1 = { args: { "duration" : 1000, "other": [1,2,3], "phoneNumber" : { "num_tlf" : "684410479", "ext_tlf" : "34" } } }; const doc2 = { args: { "duration" : 1000, "other": [1,2,3], "phoneNumber" : "684410479" } }; const hasPhoneNumberProp = has('num_tlf'); const getPhoneNumberProp = get('num_tlf'); const isPhoneNumber = (key, prop) => ( isPlainObject(prop) && key === 'phoneNumber' && hasPhoneNumberProp(prop) ); const transform = function(newDoc, doc) { if (Array.isArray(doc.args)){ newDoc.args = doc.args.reduce((acc, arg) => { if (arg !== null) { acc.push(arg.toString()); } return acc; }, []); } else if (doc.args && typeof doc.args === 'object') { // En caso de objeto, comprobar si es `phoneNumber` newDoc.args = Object.keys(doc.args).map((key) => isPhoneNumber(key, doc.args[key]) ? getPhoneNumberProp(doc.args[key]).toString() : doc.args[key].toString()); } else if (doc.args) { newDoc.args = doc.args.toString(); } console.log(newDoc); }; transform(newDoc1, doc1); transform(newDoc2, doc2); console.log(isEqual(newDoc1.args)(newDoc2.args));
Loading…

no comments

    sign in to comment