XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

fix: address some client warnings about malformed inventory.php response (#840)

7716c945
Sainan <sainan@calamity.inc>
提交于

代码差异

3 个文件 +22 -10
Modified src/controllers/api/inventoryController.ts +4 -0
@@ -16,6 +16,8 @@ import {
16 16 } from "warframe-public-export-plus";
17 17 import { handleSubsumeCompletion } from "./infestedFoundryController";
18 18 import { allDailyAffiliationKeys } from "@/src/services/inventoryService";
19 import { toOid } from "@/src/helpers/inventoryHelpers";
20 import { Types } from "mongoose";
19 21
20 22 export const inventoryController: RequestHandler = async (request, response) => {
21 23 const account = await getAccountForRequest(request);
@@ -247,6 +249,8 @@ export const inventoryController: RequestHandler = async (request, response) =>
247 249 // This determines if the "void fissures" tab is shown in navigation.
248 250 inventoryResponse.HasOwnedVoidProjectionsPreviously = true;
249 251
252 inventoryResponse.LastInventorySync = toOid(new Types.ObjectId());
253
250 254 response.json(inventoryResponse);
251 255 };
252 256
Modified src/models/inventoryModels/inventoryModel.ts +18 -9
@@ -63,7 +63,8 @@ import {
63 63 IOperatorConfigDatabase,
64 64 IPolarity,
65 65 IEquipmentDatabase,
66 IArchonCrystalUpgrade
66 IArchonCrystalUpgrade,
67 IEquipmentClient
67 68 } from "@/src/types/inventoryTypes/commonInventoryTypes";
68 69 import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
69 70 import { EquipmentSelectionSchema } from "./loadoutModel";
@@ -121,10 +122,14 @@ const polaritySchema = new Schema<IPolarity>(
121 122 { _id: false }
122 123 );
123 124
124 const abilityOverrideSchema = new Schema<IAbilityOverride>({
125 Ability: String,
126 Index: Number
127 });
125 const abilityOverrideSchema = new Schema<IAbilityOverride>(
126 {
127 Ability: String,
128 Index: Number
129 },
130 { _id: false }
131 );
132
128 133 export const colorSchema = new Schema<IColor>(
129 134 {
130 135 t0: Number,
@@ -257,6 +262,13 @@ EquipmentSchema.set("toJSON", {
257 262 transform(_document, returnedObject) {
258 263 delete returnedObject._id;
259 264 delete returnedObject.__v;
265
266 const db = returnedObject as IEquipmentDatabase;
267 const client = returnedObject as IEquipmentClient;
268
269 if (db.InfestationDate) {
270 client.InfestationDate = toMongoDate(db.InfestationDate);
271 }
260 272 }
261 273 });
262 274
@@ -959,8 +971,6 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
959 971 XPInfo: [TypeXPItemSchema],
960 972 //Mastery Rank next availability
961 973 TrainingDate: { type: Date, default: new Date(0) },
962 //Retries rank up(3 time)
963 TrainingRetriesLeft: Number,
964 974
965 975 //you saw last played Region when you opened the star map
966 976 LastRegionPlayed: String,
@@ -1111,7 +1121,6 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
1111 1121 ChallengesFixVersion: Number,
1112 1122 PlayedParkourTutorial: Boolean,
1113 1123 SubscribedToEmailsPersonalized: Number,
1114 LastInventorySync: Schema.Types.Mixed, // this should be Schema.Types.ObjectId, but older inventories may break with that.
1115 1124 ActiveLandscapeTraps: [Schema.Types.Mixed],
1116 1125 RepVotes: [Schema.Types.Mixed],
1117 1126 LeagueTickets: [Schema.Types.Mixed],
@@ -1141,7 +1150,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
1141 1150
1142 1151 DialogueHistory: dialogueHistorySchema
1143 1152 },
1144 { timestamps: { createdAt: "Created" } }
1153 { timestamps: { createdAt: "Created", updatedAt: false } }
1145 1154 );
1146 1155
1147 1156 inventorySchema.set("toJSON", {
Modified src/types/inventoryTypes/inventoryTypes.ts +0 -1
@@ -209,7 +209,6 @@ export interface IInventoryClient extends IDailyAffiliations {
209 209 QuestKeys: IQuestKeyClient[];
210 210 FlavourItems: IFlavourItem[];
211 211 Scoops: IEquipmentDatabase[];
212 TrainingRetriesLeft: number;
213 212 LoadOutPresets: ILoadOutPresets;
214 213 CurrentLoadOutIds: IOid[]; // we store it in the database using this representation as well :/
215 214 Missions: IMission[];