feat: picking up prex cards #1634
							
								
								
									
										20
									
								
								src/controllers/api/giveShipDecoAndLoreFragmentController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/controllers/api/giveShipDecoAndLoreFragmentController.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					import { getJSONfromString } from "@/src/helpers/stringHelpers";
 | 
				
			||||||
 | 
					import { addLoreFragmentScans, addShipDecorations, getInventory } from "@/src/services/inventoryService";
 | 
				
			||||||
 | 
					import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
				
			||||||
 | 
					import { ILoreFragmentScan, ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const giveShipDecoAndLoreFragmentController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    const accountId = await getAccountIdForRequest(req);
 | 
				
			||||||
 | 
					    const inventory = await getInventory(accountId, "LoreFragmentScans ShipDecorations");
 | 
				
			||||||
 | 
					    const data = getJSONfromString<IGiveShipDecoAndLoreFragmentRequest>(String(req.body));
 | 
				
			||||||
 | 
					    addLoreFragmentScans(inventory, data.LoreFragmentScans);
 | 
				
			||||||
 | 
					    addShipDecorations(inventory, data.ShipDecorations);
 | 
				
			||||||
 | 
					    await inventory.save();
 | 
				
			||||||
 | 
					    res.end();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface IGiveShipDecoAndLoreFragmentRequest {
 | 
				
			||||||
 | 
					    LoreFragmentScans: ILoreFragmentScan[];
 | 
				
			||||||
 | 
					    ShipDecorations: ITypeCount[];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -62,6 +62,7 @@ import { gildWeaponController } from "@/src/controllers/api/gildWeaponController
 | 
				
			|||||||
import { giveKeyChainTriggeredItemsController } from "@/src/controllers/api/giveKeyChainTriggeredItemsController";
 | 
					import { giveKeyChainTriggeredItemsController } from "@/src/controllers/api/giveKeyChainTriggeredItemsController";
 | 
				
			||||||
import { giveKeyChainTriggeredMessageController } from "@/src/controllers/api/giveKeyChainTriggeredMessageController";
 | 
					import { giveKeyChainTriggeredMessageController } from "@/src/controllers/api/giveKeyChainTriggeredMessageController";
 | 
				
			||||||
import { giveQuestKeyRewardController } from "@/src/controllers/api/giveQuestKey";
 | 
					import { giveQuestKeyRewardController } from "@/src/controllers/api/giveQuestKey";
 | 
				
			||||||
 | 
					import { giveShipDecoAndLoreFragmentController } from "@/src/controllers/api/giveShipDecoAndLoreFragmentController";
 | 
				
			||||||
import { giveStartingGearController } from "@/src/controllers/api/giveStartingGearController";
 | 
					import { giveStartingGearController } from "@/src/controllers/api/giveStartingGearController";
 | 
				
			||||||
import { guildTechController } from "@/src/controllers/api/guildTechController";
 | 
					import { guildTechController } from "@/src/controllers/api/guildTechController";
 | 
				
			||||||
import { hostSessionController } from "@/src/controllers/api/hostSessionController";
 | 
					import { hostSessionController } from "@/src/controllers/api/hostSessionController";
 | 
				
			||||||
@ -239,6 +240,7 @@ apiRouter.post("/gildWeapon.php", gildWeaponController);
 | 
				
			|||||||
apiRouter.post("/giveKeyChainTriggeredItems.php", giveKeyChainTriggeredItemsController);
 | 
					apiRouter.post("/giveKeyChainTriggeredItems.php", giveKeyChainTriggeredItemsController);
 | 
				
			||||||
apiRouter.post("/giveKeyChainTriggeredMessage.php", giveKeyChainTriggeredMessageController);
 | 
					apiRouter.post("/giveKeyChainTriggeredMessage.php", giveKeyChainTriggeredMessageController);
 | 
				
			||||||
apiRouter.post("/giveQuestKeyReward.php", giveQuestKeyRewardController);
 | 
					apiRouter.post("/giveQuestKeyReward.php", giveQuestKeyRewardController);
 | 
				
			||||||
 | 
					apiRouter.post("/giveShipDecoAndLoreFragment.php", giveShipDecoAndLoreFragmentController);
 | 
				
			||||||
apiRouter.post("/giveStartingGear.php", giveStartingGearController);
 | 
					apiRouter.post("/giveStartingGear.php", giveStartingGearController);
 | 
				
			||||||
apiRouter.post("/guildTech.php", guildTechController);
 | 
					apiRouter.post("/guildTech.php", guildTechController);
 | 
				
			||||||
apiRouter.post("/hostSession.php", hostSessionController);
 | 
					apiRouter.post("/hostSession.php", hostSessionController);
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,8 @@ import {
 | 
				
			|||||||
    ICalendarProgress,
 | 
					    ICalendarProgress,
 | 
				
			||||||
    IDroneClient,
 | 
					    IDroneClient,
 | 
				
			||||||
    IUpgradeClient,
 | 
					    IUpgradeClient,
 | 
				
			||||||
    TPartialStartingGear
 | 
					    TPartialStartingGear,
 | 
				
			||||||
 | 
					    ILoreFragmentScan
 | 
				
			||||||
} from "@/src/types/inventoryTypes/inventoryTypes";
 | 
					} from "@/src/types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate";
 | 
					import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate";
 | 
				
			||||||
import { IKeyChainRequest, IMissionInventoryUpdateRequest } from "../types/requestTypes";
 | 
					import { IKeyChainRequest, IMissionInventoryUpdateRequest } from "../types/requestTypes";
 | 
				
			||||||
@ -1350,6 +1351,17 @@ export const addFocusXpIncreases = (inventory: TInventoryDatabaseDocument, focus
 | 
				
			|||||||
    inventory.DailyFocus -= focusXpPlus.reduce((a, b) => a + b, 0);
 | 
					    inventory.DailyFocus -= focusXpPlus.reduce((a, b) => a + b, 0);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const addLoreFragmentScans = (inventory: TInventoryDatabaseDocument, arr: ILoreFragmentScan[]): void => {
 | 
				
			||||||
 | 
					    arr.forEach(clientFragment => {
 | 
				
			||||||
 | 
					        const fragment = inventory.LoreFragmentScans.find(x => x.ItemType == clientFragment.ItemType);
 | 
				
			||||||
 | 
					        if (fragment) {
 | 
				
			||||||
 | 
					            fragment.Progress += clientFragment.Progress;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            inventory.LoreFragmentScans.push(clientFragment);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const addChallenges = (
 | 
					export const addChallenges = (
 | 
				
			||||||
    inventory: TInventoryDatabaseDocument,
 | 
					    inventory: TInventoryDatabaseDocument,
 | 
				
			||||||
    ChallengeProgress: IChallengeProgress[],
 | 
					    ChallengeProgress: IChallengeProgress[],
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import {
 | 
				
			|||||||
    addGearExpByCategory,
 | 
					    addGearExpByCategory,
 | 
				
			||||||
    addItem,
 | 
					    addItem,
 | 
				
			||||||
    addLevelKeys,
 | 
					    addLevelKeys,
 | 
				
			||||||
 | 
					    addLoreFragmentScans,
 | 
				
			||||||
    addMiscItems,
 | 
					    addMiscItems,
 | 
				
			||||||
    addMissionComplete,
 | 
					    addMissionComplete,
 | 
				
			||||||
    addMods,
 | 
					    addMods,
 | 
				
			||||||
@ -291,14 +292,7 @@ export const addMissionInventoryUpdates = async (
 | 
				
			|||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            case "LoreFragmentScans":
 | 
					            case "LoreFragmentScans":
 | 
				
			||||||
                value.forEach(clientFragment => {
 | 
					                addLoreFragmentScans(inventory, value);
 | 
				
			||||||
                    const fragment = inventory.LoreFragmentScans.find(x => x.ItemType == clientFragment.ItemType);
 | 
					 | 
				
			||||||
                    if (fragment) {
 | 
					 | 
				
			||||||
                        fragment.Progress += clientFragment.Progress;
 | 
					 | 
				
			||||||
                    } else {
 | 
					 | 
				
			||||||
                        inventory.LoreFragmentScans.push(clientFragment);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case "LibraryScans":
 | 
					            case "LibraryScans":
 | 
				
			||||||
                value.forEach(scan => {
 | 
					                value.forEach(scan => {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user