mws-sdk-promises
Advanced tools
Comparing version 1.1.0 to 1.2.0
# Changes: | ||
## 2019/05/02 ver 1.2.0 | ||
merge PR #25 by [waqas487](https://github.com/waqas487) | ||
merge PR #26 by [Mikhail Siauko](https://github.com/buticm) | ||
## 2018/10/16 ver 1.1.0 | ||
@@ -4,0 +9,0 @@ |
162
lib/fba.js
@@ -113,2 +113,132 @@ /** | ||
/** | ||
* The step child of above, used for PutTransportContent | ||
*/ | ||
PartneredSmallParcelData: function(carrierName, packageList) { | ||
var obj = new mws.ComplexObject('TransportDetails.PartneredSmallParcelData'); | ||
if (carrierName) obj.hash['CarrierName'] = carrierName; | ||
if (packageList && packageList.length > 0) { | ||
var packageListObj = new mws.ComplexList('TransportDetails.PartneredSmallParcelData.PackageList.member'); | ||
packageList.forEach(({ dimensions, weight }) => { | ||
const dimensionObj = { | ||
'Dimensions.Length': dimensions.length, | ||
'Dimensions.Width': dimensions.width, | ||
'Dimensions.Height': dimensions.height, | ||
'Dimensions.Unit': dimensions.unit, | ||
}; | ||
const weightObj = { | ||
'Weight.Value': weight.value, | ||
'Weight.Unit': weight.unit, | ||
}; | ||
packageListObj.members.push({ | ||
...dimensionObj, | ||
...weightObj | ||
}); | ||
return packageListObj; | ||
}); | ||
obj.hash['PackageList'] = packageListObj; | ||
} | ||
return obj; | ||
}, | ||
/** | ||
* The step child of above, used for PutTransportContent | ||
*/ | ||
NonPartneredSmallParcelData: function(carrierName, packageList) { | ||
var obj = new mws.ComplexObject('TransportDetails.NonPartneredSmallParcelData'); | ||
if (carrierName) obj.hash['CarrierName'] = carrierName; | ||
if (packageList && packageList.length > 0) { | ||
var packageListObj = new mws.ComplexList('TransportDetails.NonPartneredSmallParcelData.PackageList.member'); | ||
packageList.forEach(({ trackingId }) => { | ||
packageListObj.members.push({ | ||
'TrackingId': trackingId | ||
}); | ||
return packageListObj; | ||
}); | ||
obj.hash['PackageList'] = packageListObj; | ||
} | ||
return obj; | ||
}, | ||
/** | ||
* The step child of above, used for PutTransportContent | ||
*/ | ||
PartneredLtlData: function(contact, boxCount, sellerFreightClass, freightReadyDate, palletList, totalWeight, sellerDeclaredValue) { | ||
var obj = new mws.ComplexObject('TransportDetails.PartneredLtlData'); | ||
if (contact) { | ||
if (contact.name) obj.hash['Contact.Name'] = contact.name; | ||
if (contact.phone) obj.hash['Contact.Phone'] = contact.phone; | ||
if (contact.email) obj.hash['Contact.Email'] = contact.email; | ||
if (contact.fax) obj.hash['Contact.Fax'] = contact.fax; | ||
} | ||
if (boxCount) obj.hash['BoxCount'] = boxCount; | ||
if (sellerFreightClass) obj.hash['SellerFreightClass'] = sellerFreightClass; | ||
if (freightReadyDate) obj.hash['FreightReadyDate'] = freightReadyDate.toISOString(); | ||
if (palletList && palletList.length > 0) { | ||
var palletListObj = new mws.ComplexList('TransportDetails.PartneredLtlData.PalletList.member'); | ||
palletList.forEach(({ dimensions, weight, isStacked }) => { | ||
const dimensionObj = { | ||
'Dimensions.Length': dimensions.length, | ||
'Dimensions.Width': dimensions.width, | ||
'Dimensions.Height': dimensions.height, | ||
'Dimensions.Unit': dimensions.unit, | ||
}; | ||
const weightObj = { | ||
'Weight.Value': weight.value, | ||
'Weight.Unit': weight.unit, | ||
}; | ||
palletListObj.members.push({ | ||
...dimensionObj, | ||
...weightObj, | ||
'IsStacked': isStacked | ||
}); | ||
return palletListObj; | ||
}); | ||
obj.hash['PalletList'] = palletListObj; | ||
} | ||
if (totalWeight) { | ||
if (totalWeight.value) obj.hash['TotalWeight.Value'] = totalWeight.value; | ||
if (totalWeight.unit) obj.hash['TotalWeight.Unit'] = totalWeight.unit; | ||
} | ||
if (sellerDeclaredValue) { | ||
if (sellerDeclaredValue.currencyCode) obj.hash['SellerDeclaredValue.CurrencyCode'] = sellerDeclaredValue.currencyCode; | ||
if (sellerDeclaredValue.value) obj.hash['SellerDeclaredValue.Value'] = sellerDeclaredValue.value; | ||
} | ||
return obj; | ||
}, | ||
/** | ||
* The step child of above, used for PutTransportContent | ||
*/ | ||
NonPartneredLtlData: function(carrierName, proNumber) { | ||
var obj = new mws.ComplexObject('TransportDetails.NonPartneredLtlData'); | ||
if (carrierName) obj.hash['CarrierName'] = carrierName; | ||
if (proNumber) obj.hash['ProNumber'] = proNumber; | ||
return obj; | ||
} | ||
}; | ||
@@ -232,2 +362,34 @@ | ||
}); | ||
}, | ||
PutTransportContent: function() { | ||
return new FbaInboundRequest('PutTransportContent', { | ||
ShipmentId: { name: 'ShipmentId', required: true}, | ||
IsPartnered: { name: 'IsPartnered', type: 'Boolean', required: true }, | ||
ShipmentType: { name: 'ShipmentType', required: true }, | ||
PartneredSmallParcelData: { | ||
name: 'TransportDetails.PartneredSmallParcelData', | ||
type: 'Complex', | ||
required: true, | ||
construct: complex.PartneredSmallParcelData | ||
}, | ||
NonPartneredSmallParcelData: { | ||
name: 'TransportDetails.NonPartneredSmallParcelData', | ||
type: 'Complex', | ||
required: false, | ||
construct: complex.NonPartneredSmallParcelData | ||
}, | ||
PartneredLtlData: { | ||
name: 'TransportDetails.PartneredLtlData', | ||
type: 'Complex', | ||
required: false, | ||
construct: complex.PartneredLtlData | ||
}, | ||
NonPartneredLtlData: { | ||
name: 'TransportDetails.NonPartneredLtlData', | ||
type: 'Complex', | ||
required: false, | ||
construct: complex.NonPartneredLtlData | ||
}, | ||
}); | ||
} | ||
@@ -234,0 +396,0 @@ |
@@ -110,2 +110,3 @@ /** | ||
FeedType: { name: 'FeedType', required: true }, | ||
FeedContentType: { name: '_FORMAT_', required: false }, | ||
MarketplaceIds: { name: 'MarketplaceIdList.Id', list: true, required: false }, | ||
@@ -112,0 +113,0 @@ PurgeAndReplace: { name: 'PurgeAndReplace', required: false, type: 'Boolean' } |
@@ -58,3 +58,3 @@ 'use strict'; | ||
requestOpts.body = query._BODY_; | ||
query._FORMAT_ = 'application/x-www-form-urlencoded'; | ||
query._FORMAT_ = query._FORMAT_ || 'application/x-www-form-urlencoded'; | ||
requestOpts.headers = { | ||
@@ -411,2 +411,32 @@ 'Content-Type': query._FORMAT_, | ||
/** | ||
* Complex Object helper. On initialization, you should pass | ||
* all the parameters. | ||
* | ||
* @param {String} name Name of Complex Type (including .member or subtype) | ||
*/ | ||
function ComplexObjectType(name) { | ||
this.pre = name; | ||
this.hash = {}; | ||
} | ||
/** | ||
* Appends each key of hash as a complex item | ||
* @param {Object} query Query object to append to | ||
* @return {Object} query | ||
*/ | ||
ComplexObjectType.prototype.appendTo = function(query) { | ||
var hash = this.hash; | ||
Object.keys(hash).forEach((key) => { | ||
if (hash[key] && hash[key].members) { | ||
query = hash[key].appendTo(query); | ||
} else { | ||
query[this.pre + '.' + key] = hash[key]; | ||
} | ||
}); | ||
return query; | ||
}; | ||
exports.Client = AmazonMwsClient; | ||
@@ -416,2 +446,3 @@ exports.Request = AmazonMwsRequest; | ||
exports.ComplexList = ComplexListType; | ||
exports.ComplexObject = ComplexObjectType; | ||
exports.Fbs = require('./fba'); | ||
@@ -418,0 +449,0 @@ exports.Fba = require('./fba'); |
@@ -12,3 +12,3 @@ { | ||
"homepage": "http://_", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"author": { | ||
@@ -15,0 +15,0 @@ "name": "Eibbor Srenduas", |
@@ -74,2 +74,37 @@ mws-sdk-promises | ||
```javascript | ||
//Sample of PutTransportContent API | ||
function putTransportContent(client, args) { | ||
const request = new MWS.Fbs.requests.inbound.PutTransportContent(); | ||
request.set('ShipmentId', args.shipmentId); | ||
request.set('IsPartnered', args.isPartnered); | ||
request.set('ShipmentType', args.shipmentType); | ||
const { | ||
contact, | ||
boxCount, | ||
sellerFreightClass, | ||
freightReadyDate, | ||
palletList, | ||
totalWeight, | ||
sellerDeclaredValue | ||
} = args.partneredLtlData; | ||
const pLtlData = new MWS.Fbs.complex.PartneredLtlData( | ||
contact, | ||
boxCount, | ||
sellerFreightClass, | ||
freightReadyDate, | ||
palletList, | ||
totalWeight, | ||
sellerDeclaredValue | ||
); | ||
request.set('NonPartneredSmallParcelData', pLtlData); | ||
return client.invoke(req); | ||
} | ||
``` | ||
Use it. | ||
@@ -76,0 +111,0 @@ |
71993
1640
148