fix: tell client when it has used a free favor #850
@ -98,7 +98,14 @@ export const handlePurchase = async (
 | 
			
		||||
                    const inventory = await getInventory(accountId);
 | 
			
		||||
                    const affiliation = inventory.Affiliations.find(x => x.Tag == syndicateTag)!;
 | 
			
		||||
                    affiliation.FreeFavorsUsed ??= [];
 | 
			
		||||
                    affiliation.FreeFavorsUsed.push(affiliation.FreeFavorsEarned![affiliation.FreeFavorsUsed.length]);
 | 
			
		||||
                    const lastTitle = affiliation.FreeFavorsEarned![affiliation.FreeFavorsUsed.length];
 | 
			
		||||
                    affiliation.FreeFavorsUsed.push(lastTitle);
 | 
			
		||||
                    purchaseResponse.FreeFavorsUsed = [
 | 
			
		||||
                        {
 | 
			
		||||
                            Tag: syndicateTag,
 | 
			
		||||
                            Title: lastTitle
 | 
			
		||||
                        }
 | 
			
		||||
                    ];
 | 
			
		||||
                    await inventory.save();
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 | 
			||||
                } else {
 | 
			
		||||
                    const syndicate = ExportSyndicates[syndicateTag];
 | 
			
		||||
 | 
			
		||||
@ -34,12 +34,16 @@ export type IInventoryChanges = {
 | 
			
		||||
        IBinChanges | number | object[] | IInfestedFoundryClient
 | 
			
		||||
    >;
 | 
			
		||||
 | 
			
		||||
export interface IAffiliationMods {
 | 
			
		||||
    Tag: string;
 | 
			
		||||
    Standing?: number;
 | 
			
		||||
    Title?: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IPurchaseResponse {
 | 
			
		||||
    InventoryChanges: IInventoryChanges;
 | 
			
		||||
    Standing?: {
 | 
			
		||||
        Tag: string;
 | 
			
		||||
        Standing: number;
 | 
			
		||||
    }[];
 | 
			
		||||
    Standing?: IAffiliationMods[];
 | 
			
		||||
    FreeFavorsUsed?: IAffiliationMods[];
 | 
			
		||||
    BoosterPackItems?: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	
⚠️ Potential issue
Add null checks and bounds validation to prevent runtime errors.
The current implementation has potential issues:
FreeFavorsEarnedbefore accessing itFreeFavorsEarnedhas enough titles for the current favor usageConsider this safer implementation:
📝 Committable suggestion