UNPKG

@ericblade/mws-advanced

Version:

Modern, fully featured, very opinionated node javascript Amazon MWS API based on @ericblade/mws-simple

52 lines (40 loc) 1.5 kB
const { forceArray, transformObjectKeys } = require('../util/transformers'); function getFeesEstimate(e) { return e.FeesEstimate || { TotalFeesEstimate: undefined, time: undefined, detail: undefined }; } function getIdentifierData(e) { return e.FeesEstimateIdentifier; } function getSellerInputIdentifier(e) { return getIdentifierData(e).SellerInputIdentifier; } function getTotalFeesEstimate(e) { return getFeesEstimate(e).TotalFeesEstimate; } function getTimeOfFeesEstimation(e) { return getFeesEstimate(e).TimeOfFeesEstimation; } function getFeeDetailList(e) { const x = getFeesEstimate(e).FeeDetailList; const list = x ? x.FeeDetail : x; return list ? forceArray(list) : undefined; } function parseFeesEstimate(fees) { const res2 = forceArray(fees.FeesEstimateResultList.FeesEstimateResult); const feeList = res2.reduce((acc, e) => { const sellerIdentifier = getSellerInputIdentifier(e); const identifierData = { ...getIdentifierData(e) }; identifierData.IsAmazonFulfilled = identifierData.IsAmazonFulfilled === 'true'; acc[sellerIdentifier] = { totalFees: getTotalFeesEstimate(e), time: getTimeOfFeesEstimation(e), detail: getFeeDetailList(e), identifier: identifierData, status: e.Status, error: e.Error || undefined, }; return acc; }, {}); return transformObjectKeys(feeList); } module.exports = parseFeesEstimate;