forked from OpenWF/SpaceNinjaServer
		
	Reviewed-on: OpenWF/SpaceNinjaServer#2694 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
		
			
				
	
	
		
			53 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { toMongoDate } from "../../helpers/inventoryHelpers.ts";
 | 
						|
import { getJSONfromString } from "../../helpers/stringHelpers.ts";
 | 
						|
import { getInventory, updateEntratiVault } from "../../services/inventoryService.ts";
 | 
						|
import { getAccountIdForRequest } from "../../services/loginService.ts";
 | 
						|
import type { RequestHandler } from "express";
 | 
						|
 | 
						|
export const entratiLabConquestModeController: RequestHandler = async (req, res) => {
 | 
						|
    const accountId = await getAccountIdForRequest(req);
 | 
						|
    const inventory = await getInventory(
 | 
						|
        accountId,
 | 
						|
        "EntratiVaultCountResetDate EntratiVaultCountLastPeriod EntratiLabConquestUnlocked EchoesHexConquestUnlocked EchoesHexConquestActiveFrameVariants EchoesHexConquestActiveStickers EntratiLabConquestActiveFrameVariants EntratiLabConquestCacheScoreMission EchoesHexConquestCacheScoreMission"
 | 
						|
    );
 | 
						|
    const body = getJSONfromString<IEntratiLabConquestModeRequest>(String(req.body));
 | 
						|
    updateEntratiVault(inventory);
 | 
						|
    if (body.BuyMode) {
 | 
						|
        inventory.EntratiVaultCountLastPeriod! += 2;
 | 
						|
        if (body.IsEchoesDeepArchemedea) {
 | 
						|
            inventory.EchoesHexConquestUnlocked = 1;
 | 
						|
        } else {
 | 
						|
            inventory.EntratiLabConquestUnlocked = 1;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    if (body.IsEchoesDeepArchemedea) {
 | 
						|
        if (inventory.EchoesHexConquestUnlocked) {
 | 
						|
            inventory.EchoesHexConquestActiveFrameVariants = body.EchoesHexConquestActiveFrameVariants!;
 | 
						|
            inventory.EchoesHexConquestActiveStickers = body.EchoesHexConquestActiveStickers!;
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        if (inventory.EntratiLabConquestUnlocked) {
 | 
						|
            inventory.EntratiLabConquestActiveFrameVariants = body.EntratiLabConquestActiveFrameVariants!;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    await inventory.save();
 | 
						|
    res.json({
 | 
						|
        EntratiVaultCountResetDate: toMongoDate(inventory.EntratiVaultCountResetDate!),
 | 
						|
        EntratiVaultCountLastPeriod: inventory.EntratiVaultCountLastPeriod,
 | 
						|
        EntratiLabConquestUnlocked: inventory.EntratiLabConquestUnlocked,
 | 
						|
        EntratiLabConquestCacheScoreMission: inventory.EntratiLabConquestCacheScoreMission,
 | 
						|
        EchoesHexConquestUnlocked: inventory.EchoesHexConquestUnlocked,
 | 
						|
        EchoesHexConquestCacheScoreMission: inventory.EchoesHexConquestCacheScoreMission
 | 
						|
    });
 | 
						|
};
 | 
						|
 | 
						|
interface IEntratiLabConquestModeRequest {
 | 
						|
    BuyMode?: number;
 | 
						|
    IsEchoesDeepArchemedea?: number;
 | 
						|
    EntratiLabConquestUnlocked?: number;
 | 
						|
    EntratiLabConquestActiveFrameVariants?: string[];
 | 
						|
    EchoesHexConquestUnlocked?: number;
 | 
						|
    EchoesHexConquestActiveFrameVariants?: string[];
 | 
						|
    EchoesHexConquestActiveStickers?: string[];
 | 
						|
}
 |