返回提交历史
Modified
src/controllers/api/inventoryController.ts
+4
-0
Modified
src/models/inventoryModels/inventoryModel.ts
+18
-9
Modified
src/types/inventoryTypes/inventoryTypes.ts
+0
-1
XFEstudio/SpaceNinjaServer
fix: address some client warnings about malformed inventory.php response (#840)
7716c945
代码差异
3 个文件
+22
-10
@@ -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
@@ -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", {
@@ -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[];