fix: motorcycle in backroom is broken #736
@ -2,11 +2,23 @@ import { RequestHandler } from "express";
 | 
			
		||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
			
		||||
import { getPersonalRooms } from "@/src/services/personalRoomsService";
 | 
			
		||||
import { TBootLocation } from "@/src/types/shipTypes";
 | 
			
		||||
import { getInventory } from "@/src/services/inventoryService";
 | 
			
		||||
 | 
			
		||||
export const setBootLocationController: RequestHandler = async (req, res) => {
 | 
			
		||||
    const accountId = await getAccountIdForRequest(req);
 | 
			
		||||
    const personalRooms = await getPersonalRooms(accountId);
 | 
			
		||||
    personalRooms.Ship.BootLocation = req.query.bootLocation as string as TBootLocation;
 | 
			
		||||
    await personalRooms.save();
 | 
			
		||||
 | 
			
		||||
    if (personalRooms.Ship.BootLocation == "SHOP") {
 | 
			
		||||
        // Temp fix so the motorcycle in the backroom doesn't appear broken.
 | 
			
		||||
        // This code may be removed when quests are fully implemented.
 | 
			
		||||
        const inventory = await getInventory(accountId);
 | 
			
		||||
        if (inventory.Motorcycles.length == 0) {
 | 
			
		||||
            inventory.Motorcycles.push({ ItemType: "/Lotus/Types/Vehicles/Motorcycle/MotorcyclePowerSuit" });
 | 
			
		||||
        }
 | 
			
		||||
        await inventory.save();
 | 
			
		||||
    }
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 | 
			||||
 | 
			
		||||
    res.end();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	
🛠️ Refactor suggestion
Add error handling and avoid potential race conditions.
While the code ensures that a motorcycle is added when none exists, there are scenarios to consider:
getInventory()might fail due to network or database issues; adding error handling (try/catch) secures against possible exceptions.Would you like help drafting concurrent-safe logic or adding a robust error-handling block to ensure data integrity?