chore: simplify serversideVendorsService's api
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build / build (22) (push) Successful in 39s
				
			
		
			
				
	
				Build / build (18) (push) Successful in 1m16s
				
			
		
			
				
	
				Build / build (20) (push) Successful in 1m12s
				
			
		
			
				
	
				Build / build (18) (pull_request) Successful in 44s
				
			
		
			
				
	
				Build / build (20) (pull_request) Successful in 1m15s
				
			
		
			
				
	
				Build / build (22) (pull_request) Successful in 1m12s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build / build (22) (push) Successful in 39s
				
			Build / build (18) (push) Successful in 1m16s
				
			Build / build (20) (push) Successful in 1m12s
				
			Build / build (18) (pull_request) Successful in 44s
				
			Build / build (20) (pull_request) Successful in 1m15s
				
			Build / build (22) (pull_request) Successful in 1m12s
				
			This commit is contained in:
		
							parent
							
								
									651640c4d7
								
							
						
					
					
						commit
						cce83fbd51
					
				@ -1,5 +1,5 @@
 | 
				
			|||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
import { getVendorManifestByTypeName, preprocessVendorManifest } from "@/src/services/serversideVendorsService";
 | 
					import { getVendorManifestByTypeName } from "@/src/services/serversideVendorsService";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getVendorInfoController: RequestHandler = (req, res) => {
 | 
					export const getVendorInfoController: RequestHandler = (req, res) => {
 | 
				
			||||||
    if (typeof req.query.vendor == "string") {
 | 
					    if (typeof req.query.vendor == "string") {
 | 
				
			||||||
@ -7,7 +7,7 @@ export const getVendorInfoController: RequestHandler = (req, res) => {
 | 
				
			|||||||
        if (!manifest) {
 | 
					        if (!manifest) {
 | 
				
			||||||
            throw new Error(`Unknown vendor: ${req.query.vendor}`);
 | 
					            throw new Error(`Unknown vendor: ${req.query.vendor}`);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        res.json(preprocessVendorManifest(manifest));
 | 
					        res.json(manifest);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        res.status(400).end();
 | 
					        res.status(400).end();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ import {
 | 
				
			|||||||
} from "@/src/services/guildService";
 | 
					} from "@/src/services/guildService";
 | 
				
			||||||
import { getInventory } from "@/src/services/inventoryService";
 | 
					import { getInventory } from "@/src/services/inventoryService";
 | 
				
			||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
					import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
				
			||||||
import { getVendorManifestByTypeName, preprocessVendorManifest } from "@/src/services/serversideVendorsService";
 | 
					import { getVendorManifestByTypeName } from "@/src/services/serversideVendorsService";
 | 
				
			||||||
import { GuildPermission } from "@/src/types/guildTypes";
 | 
					import { GuildPermission } from "@/src/types/guildTypes";
 | 
				
			||||||
import { IPurchaseParams } from "@/src/types/purchaseTypes";
 | 
					import { IPurchaseParams } from "@/src/types/purchaseTypes";
 | 
				
			||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
@ -26,9 +26,9 @@ export const postGuildAdvertisementController: RequestHandler = async (req, res)
 | 
				
			|||||||
    const payload = getJSONfromString<IPostGuildAdvertisementRequest>(String(req.body));
 | 
					    const payload = getJSONfromString<IPostGuildAdvertisementRequest>(String(req.body));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Handle resource cost
 | 
					    // Handle resource cost
 | 
				
			||||||
    const vendor = preprocessVendorManifest(
 | 
					    const vendor = getVendorManifestByTypeName(
 | 
				
			||||||
        getVendorManifestByTypeName("/Lotus/Types/Game/VendorManifests/Hubs/GuildAdvertisementVendorManifest")!
 | 
					        "/Lotus/Types/Game/VendorManifests/Hubs/GuildAdvertisementVendorManifest"
 | 
				
			||||||
    );
 | 
					    )!;
 | 
				
			||||||
    const offer = vendor.VendorInfo.ItemManifest.find(x => x.StoreItem == payload.PurchaseParams.StoreItem)!;
 | 
					    const offer = vendor.VendorInfo.ItemManifest.find(x => x.StoreItem == payload.PurchaseParams.StoreItem)!;
 | 
				
			||||||
    if (getVaultMiscItemCount(guild, offer.ItemPrices![0].ItemType) >= offer.ItemPrices![0].ItemCount) {
 | 
					    if (getVaultMiscItemCount(guild, offer.ItemPrices![0].ItemType) >= offer.ItemPrices![0].ItemCount) {
 | 
				
			||||||
        addVaultMiscItems(guild, [
 | 
					        addVaultMiscItems(guild, [
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ import {
 | 
				
			|||||||
    updateSlots
 | 
					    updateSlots
 | 
				
			||||||
} from "@/src/services/inventoryService";
 | 
					} from "@/src/services/inventoryService";
 | 
				
			||||||
import { getRandomWeightedRewardUc } from "@/src/services/rngService";
 | 
					import { getRandomWeightedRewardUc } from "@/src/services/rngService";
 | 
				
			||||||
import { getVendorManifestByOid, preprocessVendorManifest } from "@/src/services/serversideVendorsService";
 | 
					import { getVendorManifestByOid } from "@/src/services/serversideVendorsService";
 | 
				
			||||||
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
					import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
import { IPurchaseRequest, IPurchaseResponse, SlotPurchase, IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
					import { IPurchaseRequest, IPurchaseResponse, SlotPurchase, IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
				
			||||||
import { logger } from "@/src/utils/logger";
 | 
					import { logger } from "@/src/utils/logger";
 | 
				
			||||||
@ -53,9 +53,8 @@ export const handlePurchase = async (
 | 
				
			|||||||
    const prePurchaseInventoryChanges: IInventoryChanges = {};
 | 
					    const prePurchaseInventoryChanges: IInventoryChanges = {};
 | 
				
			||||||
    let seed: bigint | undefined;
 | 
					    let seed: bigint | undefined;
 | 
				
			||||||
    if (purchaseRequest.PurchaseParams.Source == 7) {
 | 
					    if (purchaseRequest.PurchaseParams.Source == 7) {
 | 
				
			||||||
        const rawManifest = getVendorManifestByOid(purchaseRequest.PurchaseParams.SourceId!);
 | 
					        const manifest = getVendorManifestByOid(purchaseRequest.PurchaseParams.SourceId!);
 | 
				
			||||||
        if (rawManifest) {
 | 
					        if (manifest) {
 | 
				
			||||||
            const manifest = preprocessVendorManifest(rawManifest);
 | 
					 | 
				
			||||||
            let ItemId: string | undefined;
 | 
					            let ItemId: string | undefined;
 | 
				
			||||||
            if (purchaseRequest.PurchaseParams.ExtraPurchaseInfoJson) {
 | 
					            if (purchaseRequest.PurchaseParams.ExtraPurchaseInfoJson) {
 | 
				
			||||||
                ItemId = (JSON.parse(purchaseRequest.PurchaseParams.ExtraPurchaseInfoJson) as { ItemId: string })
 | 
					                ItemId = (JSON.parse(purchaseRequest.PurchaseParams.ExtraPurchaseInfoJson) as { ItemId: string })
 | 
				
			||||||
 | 
				
			|||||||
@ -3,14 +3,14 @@ import path from "path";
 | 
				
			|||||||
import { repoDir } from "@/src/helpers/pathHelper";
 | 
					import { repoDir } from "@/src/helpers/pathHelper";
 | 
				
			||||||
import { CRng, mixSeeds } from "@/src/services/rngService";
 | 
					import { CRng, mixSeeds } from "@/src/services/rngService";
 | 
				
			||||||
import { IMongoDate } from "@/src/types/commonTypes";
 | 
					import { IMongoDate } from "@/src/types/commonTypes";
 | 
				
			||||||
import { IVendorManifest, IVendorManifestPreprocessed } from "@/src/types/vendorTypes";
 | 
					import { IRawVendorManifest, IVendorManifestPreprocessed } from "@/src/types/vendorTypes";
 | 
				
			||||||
import { JSONParse } from "json-with-bigint";
 | 
					import { JSONParse } from "json-with-bigint";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const getVendorManifestJson = (name: string): IVendorManifest => {
 | 
					const getVendorManifestJson = (name: string): IRawVendorManifest => {
 | 
				
			||||||
    return JSONParse(fs.readFileSync(path.join(repoDir, `static/fixed_responses/getVendorInfo/${name}.json`), "utf-8"));
 | 
					    return JSONParse(fs.readFileSync(path.join(repoDir, `static/fixed_responses/getVendorInfo/${name}.json`), "utf-8"));
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const vendorManifests: IVendorManifest[] = [
 | 
					const rawVendorManifests: IRawVendorManifest[] = [
 | 
				
			||||||
    getVendorManifestJson("ArchimedeanVendorManifest"),
 | 
					    getVendorManifestJson("ArchimedeanVendorManifest"),
 | 
				
			||||||
    getVendorManifestJson("DeimosEntratiFragmentVendorProductsManifest"),
 | 
					    getVendorManifestJson("DeimosEntratiFragmentVendorProductsManifest"),
 | 
				
			||||||
    getVendorManifestJson("DeimosFishmongerVendorManifest"),
 | 
					    getVendorManifestJson("DeimosFishmongerVendorManifest"),
 | 
				
			||||||
@ -44,25 +44,25 @@ const vendorManifests: IVendorManifest[] = [
 | 
				
			|||||||
    getVendorManifestJson("ZarimanCommisionsManifestArchimedean")
 | 
					    getVendorManifestJson("ZarimanCommisionsManifestArchimedean")
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getVendorManifestByTypeName = (typeName: string): IVendorManifest | undefined => {
 | 
					export const getVendorManifestByTypeName = (typeName: string): IVendorManifestPreprocessed | undefined => {
 | 
				
			||||||
    for (const vendorManifest of vendorManifests) {
 | 
					    for (const vendorManifest of rawVendorManifests) {
 | 
				
			||||||
        if (vendorManifest.VendorInfo.TypeName == typeName) {
 | 
					        if (vendorManifest.VendorInfo.TypeName == typeName) {
 | 
				
			||||||
            return vendorManifest;
 | 
					            return preprocessVendorManifest(vendorManifest);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return undefined;
 | 
					    return undefined;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getVendorManifestByOid = (oid: string): IVendorManifest | undefined => {
 | 
					export const getVendorManifestByOid = (oid: string): IVendorManifestPreprocessed | undefined => {
 | 
				
			||||||
    for (const vendorManifest of vendorManifests) {
 | 
					    for (const vendorManifest of rawVendorManifests) {
 | 
				
			||||||
        if (vendorManifest.VendorInfo._id.$oid == oid) {
 | 
					        if (vendorManifest.VendorInfo._id.$oid == oid) {
 | 
				
			||||||
            return vendorManifest;
 | 
					            return preprocessVendorManifest(vendorManifest);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return undefined;
 | 
					    return undefined;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const preprocessVendorManifest = (originalManifest: IVendorManifest): IVendorManifestPreprocessed => {
 | 
					const preprocessVendorManifest = (originalManifest: IRawVendorManifest): IVendorManifestPreprocessed => {
 | 
				
			||||||
    if (Date.now() >= parseInt(originalManifest.VendorInfo.Expiry.$date.$numberLong)) {
 | 
					    if (Date.now() >= parseInt(originalManifest.VendorInfo.Expiry.$date.$numberLong)) {
 | 
				
			||||||
        const manifest = structuredClone(originalManifest);
 | 
					        const manifest = structuredClone(originalManifest);
 | 
				
			||||||
        const info = manifest.VendorInfo;
 | 
					        const info = manifest.VendorInfo;
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ interface IVendorInfoPreprocessed extends Omit<IVendorInfo, "ItemManifest"> {
 | 
				
			|||||||
    ItemManifest: IItemManifestPreprocessed[];
 | 
					    ItemManifest: IItemManifestPreprocessed[];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IVendorManifest {
 | 
					export interface IRawVendorManifest {
 | 
				
			||||||
    VendorInfo: IVendorInfo;
 | 
					    VendorInfo: IVendorInfo;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user