From 332389ccd8ff9a54d8d5eccd4be54b8bf574c937 Mon Sep 17 00:00:00 2001 From: Sainan Date: Sat, 18 Jan 2025 07:07:37 +0100 Subject: [PATCH] fix: purchasing from client-side vendors --- src/services/purchaseService.ts | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/services/purchaseService.ts b/src/services/purchaseService.ts index 816a0c68..25d48e4b 100644 --- a/src/services/purchaseService.ts +++ b/src/services/purchaseService.ts @@ -50,23 +50,24 @@ 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(