Описание
Я получил ответ от Сервиса, который я вызываю на моем сервере NODE.
Затем я преобразую свой ответв более дружественном формате, например;
export default (response) => {
const {
limit,
debt,
outstanding
} = response.object;
const transformedData = {
outstanding: retrieveAmounts(outstanding),
limit: retrieveAmounts(limit),
debt: retrieveAmounts(debt)
};
return _omitBy(transformedData, value => value === null);
};
Как видите, я запускаю функцию retrieveAmounts(value)
для каждого элемента.
const retrieveAmounts = ({ amount, code }) => ({
amount: isStringDefined(amount) ? amount : null,
currencyCode: isStringDefined(code) ? code : null
});
Обновление
retrieveAmounts()
, в свою очередь, вызывает isDefinedString
, который проверяет предоставленный тип и длину, например,
const isDefinedString = value => typeof value === 'string' && value.length > 0;
Проблема в том, что пока оба;долг и лимит обязательны и всегда будут возвращены - непогашенные нет.Если нечего отображать, ключ объекта просто не будет там.Это когда retrieveAmounts()
выдает ошибку, потому что он не может найти amount
или code
из неопределенного - так как они не существуют, потому что ключ не существует.
Как я могу отформатировать ключ объектаесли он существует, но возвращает ноль, если его нет?Таким образом, retrieveAmounts()
не выдаст ошибку, и я просто предоставлю limit:null
моему внешнему приложению.