forked from OpenWF/SpaceNinjaServer
fix: rectify CrewMembers import & typings (#845)
This commit is contained in:
parent
90f05c477b
commit
8858b15693
@ -41,7 +41,6 @@ import {
|
|||||||
ICrewShipPortGuns,
|
ICrewShipPortGuns,
|
||||||
ICrewShipCustomization,
|
ICrewShipCustomization,
|
||||||
ICrewShipWeapon,
|
ICrewShipWeapon,
|
||||||
ICrewShipMembersClient,
|
|
||||||
ICrewShipPilotWeapon,
|
ICrewShipPilotWeapon,
|
||||||
IShipExterior,
|
IShipExterior,
|
||||||
IHelminthFoodRecord,
|
IHelminthFoodRecord,
|
||||||
@ -52,7 +51,9 @@ import {
|
|||||||
ICompletedDialogue,
|
ICompletedDialogue,
|
||||||
IDialogueClient,
|
IDialogueClient,
|
||||||
IUpgradeDatabase,
|
IUpgradeDatabase,
|
||||||
ICrewShipDatabase
|
ICrewShipDatabase,
|
||||||
|
ICrewShipMemberDatabase,
|
||||||
|
ICrewShipMemberClient
|
||||||
} from "../../types/inventoryTypes/inventoryTypes";
|
} from "../../types/inventoryTypes/inventoryTypes";
|
||||||
import { IOid } from "../../types/commonTypes";
|
import { IOid } from "../../types/commonTypes";
|
||||||
import {
|
import {
|
||||||
@ -675,25 +676,33 @@ const crewShipCustomizationSchema = new Schema<ICrewShipCustomization>(
|
|||||||
{ _id: false }
|
{ _id: false }
|
||||||
);
|
);
|
||||||
|
|
||||||
const crewShipMembersSchema = new Schema<ICrewShipMembersDatabase>(
|
const crewShipMemberSchema = new Schema<ICrewShipMemberDatabase>(
|
||||||
{
|
{
|
||||||
SLOT_A: { type: Schema.Types.ObjectId, required: false },
|
ItemId: { type: Schema.Types.ObjectId, required: false },
|
||||||
SLOT_B: { type: Schema.Types.ObjectId, required: false },
|
NemesisFingerprint: { type: Number, required: false }
|
||||||
SLOT_C: { type: Schema.Types.ObjectId, required: false }
|
|
||||||
},
|
},
|
||||||
{ _id: false }
|
{ _id: false }
|
||||||
);
|
);
|
||||||
crewShipMembersSchema.set("toJSON", {
|
crewShipMemberSchema.set("toJSON", {
|
||||||
virtuals: true,
|
virtuals: true,
|
||||||
transform(_doc, obj) {
|
transform(_doc, obj) {
|
||||||
const db = obj as ICrewShipMembersDatabase;
|
const db = obj as ICrewShipMemberDatabase;
|
||||||
const client = obj as ICrewShipMembersClient;
|
const client = obj as ICrewShipMemberClient;
|
||||||
client.SLOT_A = db.SLOT_A ? { ItemId: toOid(db.SLOT_A) } : undefined;
|
if (db.ItemId) {
|
||||||
client.SLOT_B = db.SLOT_B ? { ItemId: toOid(db.SLOT_B) } : undefined;
|
client.ItemId = toOid(db.ItemId);
|
||||||
client.SLOT_C = db.SLOT_C ? { ItemId: toOid(db.SLOT_C) } : undefined;
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const crewShipMembersSchema = new Schema<ICrewShipMembersDatabase>(
|
||||||
|
{
|
||||||
|
SLOT_A: { type: crewShipMemberSchema, required: false },
|
||||||
|
SLOT_B: { type: crewShipMemberSchema, required: false },
|
||||||
|
SLOT_C: { type: crewShipMemberSchema, required: false }
|
||||||
|
},
|
||||||
|
{ _id: false }
|
||||||
|
);
|
||||||
|
|
||||||
const crewShipSchema = new Schema<ICrewShipDatabase>({
|
const crewShipSchema = new Schema<ICrewShipDatabase>({
|
||||||
ItemType: { type: String, required: true },
|
ItemType: { type: String, required: true },
|
||||||
Configs: { type: [ItemConfigSchema], default: [] },
|
Configs: { type: [ItemConfigSchema], default: [] },
|
||||||
|
@ -10,6 +10,8 @@ import {
|
|||||||
equipmentKeys,
|
equipmentKeys,
|
||||||
ICrewShipClient,
|
ICrewShipClient,
|
||||||
ICrewShipDatabase,
|
ICrewShipDatabase,
|
||||||
|
ICrewShipMemberClient,
|
||||||
|
ICrewShipMemberDatabase,
|
||||||
ICrewShipMembersClient,
|
ICrewShipMembersClient,
|
||||||
ICrewShipMembersDatabase,
|
ICrewShipMembersDatabase,
|
||||||
IDialogueClient,
|
IDialogueClient,
|
||||||
@ -85,11 +87,18 @@ const replaceSlots = (db: ISlots, client: ISlots): void => {
|
|||||||
db.Slots = client.Slots;
|
db.Slots = client.Slots;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const convertCrewShipMember = (client: ICrewShipMemberClient): ICrewShipMemberDatabase => {
|
||||||
|
return {
|
||||||
|
...client,
|
||||||
|
ItemId: client.ItemId ? new Types.ObjectId(client.ItemId.$oid) : undefined
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
const convertCrewShipMembers = (client: ICrewShipMembersClient): ICrewShipMembersDatabase => {
|
const convertCrewShipMembers = (client: ICrewShipMembersClient): ICrewShipMembersDatabase => {
|
||||||
return {
|
return {
|
||||||
SLOT_A: client.SLOT_A ? new Types.ObjectId(client.SLOT_A.ItemId.$oid) : undefined,
|
SLOT_A: client.SLOT_A ? convertCrewShipMember(client.SLOT_A) : undefined,
|
||||||
SLOT_B: client.SLOT_B ? new Types.ObjectId(client.SLOT_B.ItemId.$oid) : undefined,
|
SLOT_B: client.SLOT_B ? convertCrewShipMember(client.SLOT_B) : undefined,
|
||||||
SLOT_C: client.SLOT_C ? new Types.ObjectId(client.SLOT_C.ItemId.$oid) : undefined
|
SLOT_C: client.SLOT_C ? convertCrewShipMember(client.SLOT_C) : undefined
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -471,19 +471,25 @@ export interface ICrewShipDatabase extends Omit<ICrewShipClient, "CrewMembers" |
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface ICrewShipMembersClient {
|
export interface ICrewShipMembersClient {
|
||||||
SLOT_A?: ISlot;
|
SLOT_A?: ICrewShipMemberClient;
|
||||||
SLOT_B?: ISlot;
|
SLOT_B?: ICrewShipMemberClient;
|
||||||
SLOT_C?: ISlot;
|
SLOT_C?: ICrewShipMemberClient;
|
||||||
}
|
|
||||||
|
|
||||||
export interface ISlot {
|
|
||||||
ItemId: IOid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ICrewShipMembersDatabase {
|
export interface ICrewShipMembersDatabase {
|
||||||
SLOT_A?: Types.ObjectId;
|
SLOT_A?: ICrewShipMemberDatabase;
|
||||||
SLOT_B?: Types.ObjectId;
|
SLOT_B?: ICrewShipMemberDatabase;
|
||||||
SLOT_C?: Types.ObjectId;
|
SLOT_C?: ICrewShipMemberDatabase;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ICrewShipMemberClient {
|
||||||
|
ItemId?: IOid;
|
||||||
|
NemesisFingerprint?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ICrewShipMemberDatabase {
|
||||||
|
ItemId?: Types.ObjectId;
|
||||||
|
NemesisFingerprint?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ICrewShipCustomization {
|
export interface ICrewShipCustomization {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user