diff --git a/package-lock.json b/package-lock.json index 95c6af63..492c6357 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "copyfiles": "^2.4.1", "express": "^5", "mongoose": "^8.9.4", - "warframe-public-export-plus": "^0.5.22", + "warframe-public-export-plus": "^0.5.23", "warframe-riven-info": "^0.1.2", "winston": "^3.17.0", "winston-daily-rotate-file": "^5.0.0" @@ -3778,9 +3778,9 @@ } }, "node_modules/warframe-public-export-plus": { - "version": "0.5.22", - "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.22.tgz", - "integrity": "sha512-IbOW7ndE17ceyd7IjRy1U1p3P0Q7Q1/E26N04+ha/gG5FIdLpZDR9kLzyHGlnBLDSl2Jro6rxgOq0wZ/0i0w3g==" + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.23.tgz", + "integrity": "sha512-AJLivzXpon+UDm+SYq3wIXiP4OXCDOgXvCG1VLawJrHW3VDff+NpsUJApBPA4S8oZ8N8NPyBVKBvuoF2Pplaeg==" }, "node_modules/warframe-riven-info": { "version": "0.1.2", diff --git a/package.json b/package.json index d831da5b..f0408d92 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "copyfiles": "^2.4.1", "express": "^5", "mongoose": "^8.9.4", - "warframe-public-export-plus": "^0.5.22", + "warframe-public-export-plus": "^0.5.23", "warframe-riven-info": "^0.1.2", "winston": "^3.17.0", "winston-daily-rotate-file": "^5.0.0" diff --git a/src/services/purchaseService.ts b/src/services/purchaseService.ts index 816a0c68..dc2fadf4 100644 --- a/src/services/purchaseService.ts +++ b/src/services/purchaseService.ts @@ -50,23 +50,25 @@ export const handlePurchase = async ( const inventoryChanges: IInventoryChanges = {}; if (purchaseRequest.PurchaseParams.Source == 7) { const manifest = getVendorManifestByOid(purchaseRequest.PurchaseParams.SourceId!); - if (!manifest) { - throw new Error(`unknown vendor id: ${purchaseRequest.PurchaseParams.SourceId!}`); + if (manifest) { + const ItemId = (JSON.parse(purchaseRequest.PurchaseParams.ExtraPurchaseInfoJson!) as { ItemId: string }) + .ItemId; + const offer = manifest.VendorInfo.ItemManifest.find(x => x.Id.$oid == ItemId); + if (!offer) { + throw new Error(`unknown vendor offer: ${ItemId}`); + } + if (offer.ItemPrices) { + await handleItemPrices( + accountId, + offer.ItemPrices, + purchaseRequest.PurchaseParams.Quantity, + inventoryChanges + ); + } + purchaseRequest.PurchaseParams.Quantity *= offer.QuantityMultiplier; + } else if (!ExportVendors[purchaseRequest.PurchaseParams.SourceId!]) { + throw new Error(`unknown vendor: ${purchaseRequest.PurchaseParams.SourceId!}`); } - const ItemId = (JSON.parse(purchaseRequest.PurchaseParams.ExtraPurchaseInfoJson!) as { ItemId: string }).ItemId; - const offer = manifest.VendorInfo.ItemManifest.find(x => x.Id.$oid == ItemId); - if (!offer) { - throw new Error(`unknown vendor offer: ${ItemId}`); - } - if (offer.ItemPrices) { - await handleItemPrices( - accountId, - offer.ItemPrices, - purchaseRequest.PurchaseParams.Quantity, - inventoryChanges - ); - } - purchaseRequest.PurchaseParams.Quantity *= offer.QuantityMultiplier; } const purchaseResponse = await handleStoreItemAcquisition( @@ -126,7 +128,7 @@ export const handlePurchase = async ( if (purchaseRequest.PurchaseParams.SourceId! in ExportVendors) { const vendor = ExportVendors[purchaseRequest.PurchaseParams.SourceId!]; const offer = vendor.items.find(x => x.storeItem == purchaseRequest.PurchaseParams.StoreItem); - if (offer) { + if (offer && offer.itemPrices) { await handleItemPrices( accountId, offer.itemPrices,