fix: handle saveDialogue request without Data or Gift #1853
@ -4,7 +4,6 @@ import { addEmailItem, getInventory, updateCurrency } from "@/src/services/inven
|
|||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
import { ICompletedDialogue, IDialogueDatabase } from "@/src/types/inventoryTypes/inventoryTypes";
|
import { ICompletedDialogue, IDialogueDatabase } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
import { IInventoryChanges } from "@/src/types/purchaseTypes";
|
import { IInventoryChanges } from "@/src/types/purchaseTypes";
|
||||||
import { logger } from "@/src/utils/logger";
|
|
||||||
import { RequestHandler } from "express";
|
import { RequestHandler } from "express";
|
||||||
|
|
||||||
export const saveDialogueController: RequestHandler = async (req, res) => {
|
export const saveDialogueController: RequestHandler = async (req, res) => {
|
||||||
@ -27,33 +26,33 @@ export const saveDialogueController: RequestHandler = async (req, res) => {
|
|||||||
const dialogue = getDialogue(inventory, request.DialogueName);
|
const dialogue = getDialogue(inventory, request.DialogueName);
|
||||||
dialogue.Rank = request.Rank;
|
dialogue.Rank = request.Rank;
|
||||||
dialogue.Chemistry = request.Chemistry;
|
dialogue.Chemistry = request.Chemistry;
|
||||||
|
dialogue.QueuedDialogues = request.QueuedDialogues;
|
||||||
|
for (const bool of request.Booleans) {
|
||||||
|
dialogue.Booleans.push(bool);
|
||||||
|
if (bool == "LizzieShawzin") {
|
||||||
|
await addEmailItem(
|
||||||
|
inventory,
|
||||||
|
"/Lotus/Types/Items/EmailItems/LizzieShawzinSkinEmailItem",
|
||||||
|
inventoryChanges
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const bool of request.ResetBooleans) {
|
||||||
|
const index = dialogue.Booleans.findIndex(x => x == bool);
|
||||||
|
if (index != -1) {
|
||||||
|
dialogue.Booleans.splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const info of request.OtherDialogueInfos) {
|
||||||
|
const otherDialogue = getDialogue(inventory, info.Dialogue);
|
||||||
|
if (info.Tag != "") {
|
||||||
|
otherDialogue.QueuedDialogues.push(info.Tag);
|
||||||
|
}
|
||||||
|
otherDialogue.Chemistry += info.Value; // unsure
|
||||||
|
}
|
||||||
if (request.Data) {
|
if (request.Data) {
|
||||||
dialogue.QueuedDialogues = request.QueuedDialogues;
|
|
||||||
for (const bool of request.Booleans) {
|
|
||||||
dialogue.Booleans.push(bool);
|
|
||||||
if (bool == "LizzieShawzin") {
|
|
||||||
await addEmailItem(
|
|
||||||
inventory,
|
|
||||||
"/Lotus/Types/Items/EmailItems/LizzieShawzinSkinEmailItem",
|
|
||||||
inventoryChanges
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (const bool of request.ResetBooleans) {
|
|
||||||
const index = dialogue.Booleans.findIndex(x => x == bool);
|
|
||||||
if (index != -1) {
|
|
||||||
dialogue.Booleans.splice(index, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dialogue.Completed.push(request.Data);
|
dialogue.Completed.push(request.Data);
|
||||||
dialogue.AvailableDate = new Date(tomorrowAt0Utc);
|
dialogue.AvailableDate = new Date(tomorrowAt0Utc);
|
||||||
for (const info of request.OtherDialogueInfos) {
|
|
||||||
const otherDialogue = getDialogue(inventory, info.Dialogue);
|
|
||||||
if (info.Tag != "") {
|
|
||||||
otherDialogue.QueuedDialogues.push(info.Tag);
|
|
||||||
}
|
|
||||||
otherDialogue.Chemistry += info.Value; // unsure
|
|
||||||
}
|
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
res.json({
|
res.json({
|
||||||
InventoryChanges: inventoryChanges,
|
InventoryChanges: inventoryChanges,
|
||||||
@ -73,8 +72,6 @@ export const saveDialogueController: RequestHandler = async (req, res) => {
|
|||||||
InventoryChanges: inventoryChanges,
|
InventoryChanges: inventoryChanges,
|
||||||
AvailableGiftDate: { $date: { $numberLong: tomorrowAt0Utc.toString() } }
|
AvailableGiftDate: { $date: { $numberLong: tomorrowAt0Utc.toString() } }
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
logger.error(`saveDialogue request not fully handled: ${String(req.body)}`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user