Merge branch 'main' into main
This commit is contained in:
commit
11fd4c060f
22
src/controllers/api/tauntHistoryController.ts
Normal file
22
src/controllers/api/tauntHistoryController.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { RequestHandler } from "express";
|
||||||
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
|
import { getInventory } from "@/src/services/inventoryService";
|
||||||
|
import { ITaunt } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
|
import { logger } from "@/src/utils/logger";
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
||||||
|
export const tauntHistoryController: RequestHandler = async (req, res) => {
|
||||||
|
const accountId = await getAccountIdForRequest(req);
|
||||||
|
const inventory = await getInventory(accountId);
|
||||||
|
const clientTaunt = JSON.parse(String(req.body)) as ITaunt;
|
||||||
|
logger.debug(`updating taunt ${clientTaunt.node} to state ${clientTaunt.state}`);
|
||||||
|
inventory.TauntHistory ??= [];
|
||||||
|
const taunt = inventory.TauntHistory.find(x => x.node == clientTaunt.node);
|
||||||
|
if (taunt) {
|
||||||
|
taunt.state = clientTaunt.state;
|
||||||
|
} else {
|
||||||
|
inventory.TauntHistory.push(clientTaunt);
|
||||||
|
}
|
||||||
|
await inventory.save();
|
||||||
|
res.end();
|
||||||
|
};
|
@ -64,6 +64,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
|||||||
case "/Lotus/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker":
|
case "/Lotus/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker":
|
||||||
case "/Lotus/Types/Items/MiscItems/WeaponSecondaryArcaneUnlocker":
|
case "/Lotus/Types/Items/MiscItems/WeaponSecondaryArcaneUnlocker":
|
||||||
case "/Lotus/Types/Items/MiscItems/WeaponMeleeArcaneUnlocker":
|
case "/Lotus/Types/Items/MiscItems/WeaponMeleeArcaneUnlocker":
|
||||||
|
case "/Lotus/Types/Items/MiscItems/WeaponAmpArcaneUnlocker":
|
||||||
for (const item of inventory[payload.ItemCategory]) {
|
for (const item of inventory[payload.ItemCategory]) {
|
||||||
if (item._id.toString() == payload.ItemId.$oid) {
|
if (item._id.toString() == payload.ItemId.$oid) {
|
||||||
item.Features ??= 0;
|
item.Features ??= 0;
|
||||||
|
@ -10,11 +10,13 @@ export const pushArchonCrystalUpgradeController: RequestHandler = async (req, re
|
|||||||
if (suit) {
|
if (suit) {
|
||||||
suit.ArchonCrystalUpgrades ??= [];
|
suit.ArchonCrystalUpgrades ??= [];
|
||||||
const count = (req.query.count as number | undefined) ?? 1;
|
const count = (req.query.count as number | undefined) ?? 1;
|
||||||
|
if (count >= 1 && count <= 10000) {
|
||||||
for (let i = 0; i != count; ++i) {
|
for (let i = 0; i != count; ++i) {
|
||||||
suit.ArchonCrystalUpgrades.push({ UpgradeType: req.query.type as string });
|
suit.ArchonCrystalUpgrades.push({ UpgradeType: req.query.type as string });
|
||||||
}
|
}
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
res.end();
|
res.end();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
res.status(400).end();
|
res.status(400).end();
|
||||||
};
|
};
|
||||||
|
@ -31,7 +31,7 @@ import {
|
|||||||
IFusionTreasure,
|
IFusionTreasure,
|
||||||
ISpectreLoadout,
|
ISpectreLoadout,
|
||||||
IWeaponSkinDatabase,
|
IWeaponSkinDatabase,
|
||||||
ITauntHistory,
|
ITaunt,
|
||||||
IPeriodicMissionCompletionDatabase,
|
IPeriodicMissionCompletionDatabase,
|
||||||
IPeriodicMissionCompletionResponse,
|
IPeriodicMissionCompletionResponse,
|
||||||
ILoreFragmentScan,
|
ILoreFragmentScan,
|
||||||
@ -533,7 +533,7 @@ weaponSkinsSchema.set("toJSON", {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const tauntHistorySchema = new Schema<ITauntHistory>(
|
const tauntSchema = new Schema<ITaunt>(
|
||||||
{
|
{
|
||||||
node: String,
|
node: String,
|
||||||
state: String
|
state: String
|
||||||
@ -772,8 +772,8 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
|||||||
|
|
||||||
//Ayatan Item
|
//Ayatan Item
|
||||||
FusionTreasures: [fusionTreasuresSchema],
|
FusionTreasures: [fusionTreasuresSchema],
|
||||||
//"node": "TreasureTutorial", "state": "TS_COMPLETED"
|
//only used for Maroo apparently - { "node": "TreasureTutorial", "state": "TS_COMPLETED" }
|
||||||
TauntHistory: [tauntHistorySchema],
|
TauntHistory: { type: [tauntSchema], default: undefined },
|
||||||
|
|
||||||
//noShow2FA,VisitPrimeVault etc
|
//noShow2FA,VisitPrimeVault etc
|
||||||
WebFlags: Schema.Types.Mixed,
|
WebFlags: Schema.Types.Mixed,
|
||||||
|
@ -24,7 +24,8 @@ import { getShipController } from "@/src/controllers/api/getShipController";
|
|||||||
import { getVendorInfoController } from "@/src/controllers/api/getVendorInfoController";
|
import { getVendorInfoController } from "@/src/controllers/api/getVendorInfoController";
|
||||||
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 { guildTechController } from "@/src/controllers/api/guildTechController";
|
import { gildWeaponController } from "@/src/controllers/api/gildWeaponController";
|
||||||
|
import { guildTechController } from "../controllers/api/guildTechController";
|
||||||
import { hostSessionController } from "@/src/controllers/api/hostSessionController";
|
import { hostSessionController } from "@/src/controllers/api/hostSessionController";
|
||||||
import { hubController } from "@/src/controllers/api/hubController";
|
import { hubController } from "@/src/controllers/api/hubController";
|
||||||
import { hubInstancesController } from "@/src/controllers/api/hubInstancesController";
|
import { hubInstancesController } from "@/src/controllers/api/hubInstancesController";
|
||||||
@ -58,6 +59,7 @@ import { startRecipeController } from "@/src/controllers/api/startRecipeControll
|
|||||||
import { stepSequencersController } from "@/src/controllers/api/stepSequencersController";
|
import { stepSequencersController } from "@/src/controllers/api/stepSequencersController";
|
||||||
import { surveysController } from "@/src/controllers/api/surveysController";
|
import { surveysController } from "@/src/controllers/api/surveysController";
|
||||||
import { syndicateSacrificeController } from "@/src/controllers/api/syndicateSacrificeController";
|
import { syndicateSacrificeController } from "@/src/controllers/api/syndicateSacrificeController";
|
||||||
|
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
|
||||||
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
|
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
|
||||||
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
|
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
|
||||||
import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
|
import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
|
||||||
@ -65,7 +67,6 @@ import { updateQuestController } from "@/src/controllers/api/updateQuestControll
|
|||||||
import { updateSessionGetController, updateSessionPostController } from "@/src/controllers/api/updateSessionController";
|
import { updateSessionGetController, updateSessionPostController } from "@/src/controllers/api/updateSessionController";
|
||||||
import { updateThemeController } from "@/src/controllers/api/updateThemeController";
|
import { updateThemeController } from "@/src/controllers/api/updateThemeController";
|
||||||
import { upgradesController } from "@/src/controllers/api/upgradesController";
|
import { upgradesController } from "@/src/controllers/api/upgradesController";
|
||||||
import { gildWeaponController } from "@/src/controllers/api/gildWeaponController";
|
|
||||||
|
|
||||||
const apiRouter = express.Router();
|
const apiRouter = express.Router();
|
||||||
|
|
||||||
@ -134,6 +135,7 @@ apiRouter.post("/startDojoRecipe.php", startDojoRecipeController);
|
|||||||
apiRouter.post("/startRecipe.php", startRecipeController);
|
apiRouter.post("/startRecipe.php", startRecipeController);
|
||||||
apiRouter.post("/stepSequencers.php", stepSequencersController);
|
apiRouter.post("/stepSequencers.php", stepSequencersController);
|
||||||
apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController);
|
apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController);
|
||||||
|
apiRouter.post("/tauntHistory.php", tauntHistoryController);
|
||||||
apiRouter.post("/trainingResult.php", trainingResultController);
|
apiRouter.post("/trainingResult.php", trainingResultController);
|
||||||
apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
|
apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
|
||||||
apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
|
apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
|
||||||
|
@ -177,7 +177,7 @@ export interface IInventoryResponse {
|
|||||||
CompletedAlerts: string[];
|
CompletedAlerts: string[];
|
||||||
Consumables: IConsumable[];
|
Consumables: IConsumable[];
|
||||||
LevelKeys: IConsumable[];
|
LevelKeys: IConsumable[];
|
||||||
TauntHistory: ITauntHistory[];
|
TauntHistory?: ITaunt[];
|
||||||
StoryModeChoice: string;
|
StoryModeChoice: string;
|
||||||
PeriodicMissionCompletions: IPeriodicMissionCompletionDatabase[];
|
PeriodicMissionCompletions: IPeriodicMissionCompletionDatabase[];
|
||||||
KubrowPetEggs: IKubrowPetEgg[];
|
KubrowPetEggs: IKubrowPetEgg[];
|
||||||
@ -888,9 +888,9 @@ export interface INotePacks {
|
|||||||
PERCUSSION: string;
|
PERCUSSION: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ITauntHistory {
|
export interface ITaunt {
|
||||||
node: string;
|
node: string;
|
||||||
state: string;
|
state: "TS_UNLOCKED" | "TS_COMPLETED";
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IWeaponSkinDatabase {
|
export interface IWeaponSkinDatabase {
|
||||||
|
@ -114,7 +114,7 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>You can use these unlimited slots to apply a wide range of upgrades.</p>
|
<p>You can use these unlimited slots to apply a wide range of upgrades.</p>
|
||||||
<form class="input-group mb-3" onsubmit="doPushArchonCrystalUpgrade();return false;">
|
<form class="input-group mb-3" onsubmit="doPushArchonCrystalUpgrade();return false;">
|
||||||
<input type="number" id="archon-crystal-add-count" min="1" value="1" class="form-control" style="max-width:100px" />
|
<input type="number" id="archon-crystal-add-count" min="1" max="10000" value="1" class="form-control" style="max-width:100px" />
|
||||||
<span class="input-group-text">x</span>
|
<span class="input-group-text">x</span>
|
||||||
<input class="form-control" list="datalist-archonCrystalUpgrades" />
|
<input class="form-control" list="datalist-archonCrystalUpgrades" />
|
||||||
<button class="btn btn-primary" type="submit">Add</button>
|
<button class="btn btn-primary" type="submit">Add</button>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user