diff --git a/src/controllers/dynamic/worldStateController.ts b/src/controllers/dynamic/worldStateController.ts index fa42d3bb..428c9834 100644 --- a/src/controllers/dynamic/worldStateController.ts +++ b/src/controllers/dynamic/worldStateController.ts @@ -6,8 +6,8 @@ import { config } from "@/src/services/configService"; import { getWorldState } from "@/src/services/worldStateService"; const worldStateController: RequestHandler = async (_req, res) => { - let ws: IWorldState = {} - if(config.useStaticWorldState){ + let ws: IWorldState = {}; + if (config.useStaticWorldState) { ws = worldState; ws.BuildLabel = buildConfig.buildLabel; ws.Time = Math.round(Date.now() / 1000); @@ -16,7 +16,7 @@ const worldStateController: RequestHandler = async (_req, res) => { ws.BuildLabel = buildConfig.buildLabel; ws.Time = Math.round(Date.now() / 1000); } - + res.json(ws); }; diff --git a/src/models/worldStateModel.ts b/src/models/worldStateModel.ts index 535d82e7..21fb345a 100644 --- a/src/models/worldStateModel.ts +++ b/src/models/worldStateModel.ts @@ -1,5 +1,42 @@ import { model, Schema } from "mongoose"; -import { IEvent, IFlashSale, IJob, ILink, IMessage, IPVPChallengeInstance, ICategory, IPVPChallengeInstanceParam, IWorldState, IMission, IAlert, ICountedItems, IReward, IBaseWorldStateObject, ISortie, ILiteSortie, ISortieMission, ISyndicateMission, IActiveMission, IGlobalUpgrade, IInGameMarket, ILandingPage, IInvasion, IInvasionMissionInfo, INodeOverride, IVoidTrader, IVoidTraderItem, IVoidTraderScheduleInfo, IVoidStorm, IPrimeAccessAvailability, IDailyDeal, ILibraryInfo, IEndlessXpChoice, IFeaturedGuild, IActiveChallenge, ISeasonInfo } from "@/src/types/worldStateTypes"; +import { + IEvent, + IFlashSale, + IJob, + ILink, + IMessage, + IPVPChallengeInstance, + ICategory, + IPVPChallengeInstanceParam, + IWorldState, + IMission, + IAlert, + ICountedItems, + IReward, + IBaseWorldStateObject, + ISortie, + ILiteSortie, + ISortieMission, + ISyndicateMission, + IActiveMission, + IGlobalUpgrade, + IInGameMarket, + ILandingPage, + IInvasion, + IInvasionMissionInfo, + INodeOverride, + IVoidTrader, + IVoidTraderItem, + IVoidTraderScheduleInfo, + IVoidStorm, + IPrimeAccessAvailability, + IDailyDeal, + ILibraryInfo, + IEndlessXpChoice, + IFeaturedGuild, + IActiveChallenge, + ISeasonInfo +} from "@/src/types/worldStateTypes"; const messageSchema = new Schema( { @@ -17,27 +54,24 @@ const linkSchema = new Schema( { _id: false } ); -const EventSchema = new Schema( - { - Messages: [messageSchema], - Prop: String, - Links: [linkSchema], - Date: Date, - Icon: String, - EventStartDate: Date, - EventEndDate: Date, - ImageUrl: String, - Priority: Boolean, - MobileOnly: Boolean, - HideEndDateModifier: Boolean, - Community: Boolean - } -); - +const EventSchema = new Schema({ + Messages: [messageSchema], + Prop: String, + Links: [linkSchema], + Date: Date, + Icon: String, + EventStartDate: Date, + EventEndDate: Date, + ImageUrl: String, + Priority: Boolean, + MobileOnly: Boolean, + HideEndDateModifier: Boolean, + Community: Boolean +}); EventSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -54,10 +88,10 @@ const RewardSchema = new Schema( credits: Number, xp: Number, items: [String], - countedItems: [CountedItemsSchema], + countedItems: [CountedItemsSchema] }, { _id: false } -) +); const MissionSchema = new Schema( { @@ -82,7 +116,7 @@ const MissionSchema = new Schema( vipAgent: Boolean, leadersAlwaysAllowed: Boolean, goalTag: String, - levelAuras: [String], + levelAuras: [String] }, { _id: false } ); @@ -97,7 +131,7 @@ const AlertSchema = new Schema({ AlertSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -110,7 +144,7 @@ const SortieMissionSchema = new Schema({ SortieMissionSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -125,7 +159,7 @@ const LiteSortieSchema = new Schema({ LiteSortieSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -141,7 +175,7 @@ const SortieSchema = new Schema({ SortieSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -172,11 +206,10 @@ const SyndicateMissionSchema = new Schema({ SyndicateMissionSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); - const ActiveMissionSchema = new Schema({ Activation: Date, Expiry: Date, @@ -190,7 +223,7 @@ const ActiveMissionSchema = new Schema({ ActiveMissionSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -204,7 +237,7 @@ const GlobalUpgradeSchema = new Schema({ GlobalUpgradeSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -248,7 +281,7 @@ const InGameMarketSchema = new Schema( LandingPage: LandingPageSchema }, { _id: false } -) +); const InvasionMissionInfoSchema = new Schema( { @@ -256,7 +289,7 @@ const InvasionMissionInfoSchema = new Schema( faction: String }, { _id: false } -) +); const InvasionSchema = new Schema({ Activation: Date, @@ -271,12 +304,12 @@ const InvasionSchema = new Schema({ AttackerReward: RewardSchema, AttackerMissionInfo: InvasionMissionInfoSchema, DefenderReward: RewardSchema, - DefenderMissionInfo: InvasionMissionInfoSchema, + DefenderMissionInfo: InvasionMissionInfoSchema }); InvasionSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -286,12 +319,12 @@ const NodeOverrideSchema = new Schema({ Node: String, Faction: String, CustomNpcEncounters: [String], - LevelOverride: String, + LevelOverride: String }); NodeOverrideSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -313,22 +346,20 @@ const VoidTraderScheduleInfoSchema = new Schema( { _id: false } ); -const VoidTraderSchema = new Schema( - { - Activation: Date, - Expiry: Date, - Character: String, - Node: String, - Completed: Boolean, - Manifest: [VoidTraderItemSchema], - EvergreenManifest: [VoidTraderItemSchema], - ScheduleInfo: [VoidTraderScheduleInfoSchema], - } -); +const VoidTraderSchema = new Schema({ + Activation: Date, + Expiry: Date, + Character: String, + Node: String, + Completed: Boolean, + Manifest: [VoidTraderItemSchema], + EvergreenManifest: [VoidTraderItemSchema], + ScheduleInfo: [VoidTraderScheduleInfoSchema] +}); VoidTraderSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -341,7 +372,7 @@ const VoidStormSchema = new Schema({ VoidStormSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -381,22 +412,20 @@ const PVPChallengeInstanceParam = new Schema( { _id: false } ); -const PVPChallengeInstanceSchema = new Schema( - { - challengeTypeRefID: String, - startDate: Date, - endDate: Date, - params: [PVPChallengeInstanceParam], - isGenerated: Boolean, - PVPMode: String, - subChallenges: [Schema.Types.ObjectId], - Category: String - } -); +const PVPChallengeInstanceSchema = new Schema({ + challengeTypeRefID: String, + startDate: Date, + endDate: Date, + params: [PVPChallengeInstanceParam], + isGenerated: Boolean, + PVPMode: String, + subChallenges: [Schema.Types.ObjectId], + Category: String +}); PVPChallengeInstanceSchema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -418,7 +447,7 @@ const FeaturedGuildShema = new Schema({ FeaturedGuildShema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -431,7 +460,7 @@ const ActiveChallengeSchema = new Schema({ FeaturedGuildShema.set("toJSON", { transform(_document, returnedObject) { - returnedObject._id = { $oid: returnedObject._id.toString()}; + returnedObject._id = { $oid: returnedObject._id.toString() }; } }); @@ -442,37 +471,36 @@ const SeasonInfoSchema = new Schema( Phase: Number, Params: String, ActiveChallenges: [ActiveChallengeSchema] - }, { _id: false } + }, + { _id: false } ); -const WorldStateSchema = new Schema( - { - Events: [EventSchema], - // Goals: [GoalSchema], - Alerts: [AlertSchema], - Sorties: [SortieSchema], - LiteSorties: [LiteSortieSchema], - SyndicateMissions: [SyndicateMissionSchema], - ActiveMissions: [ActiveMissionSchema], - GlobalUpgrades: [GlobalUpgradeSchema], - FlashSales: [FlashSaleSchema], - InGameMarket: InGameMarketSchema, - Invasions: [InvasionSchema], - NodeOverrides: [NodeOverrideSchema], - VoidTraders: [VoidTraderSchema], - PrimeVaultTraders: [VoidTraderSchema], - VoidStorms: [VoidStormSchema], - PrimeAccessAvailability: PrimeAccessAvailabilitySchema, - DailyDeals: [DailyDealSchema], - LibraryInfo: LibraryInfoSchema, - PVPChallengeInstances: [PVPChallengeInstanceSchema], - ProjectPct: [Number], - EndlessXpChoices: [EndlessXpChoiceSchema], - FeaturedGuilds: [FeaturedGuildShema], - SeasonInfo: SeasonInfoSchema, - Tmp: String - } -); +const WorldStateSchema = new Schema({ + Events: [EventSchema], + // Goals: [GoalSchema], + Alerts: [AlertSchema], + Sorties: [SortieSchema], + LiteSorties: [LiteSortieSchema], + SyndicateMissions: [SyndicateMissionSchema], + ActiveMissions: [ActiveMissionSchema], + GlobalUpgrades: [GlobalUpgradeSchema], + FlashSales: [FlashSaleSchema], + InGameMarket: InGameMarketSchema, + Invasions: [InvasionSchema], + NodeOverrides: [NodeOverrideSchema], + VoidTraders: [VoidTraderSchema], + PrimeVaultTraders: [VoidTraderSchema], + VoidStorms: [VoidStormSchema], + PrimeAccessAvailability: PrimeAccessAvailabilitySchema, + DailyDeals: [DailyDealSchema], + LibraryInfo: LibraryInfoSchema, + PVPChallengeInstances: [PVPChallengeInstanceSchema], + ProjectPct: [Number], + EndlessXpChoices: [EndlessXpChoiceSchema], + FeaturedGuilds: [FeaturedGuildShema], + SeasonInfo: SeasonInfoSchema, + Tmp: String +}); WorldStateSchema.set("toJSON", { transform(_document, returnedObject) { @@ -481,4 +509,4 @@ WorldStateSchema.set("toJSON", { } }); -export const WorldState = model("WorldState", WorldStateSchema); \ No newline at end of file +export const WorldState = model("WorldState", WorldStateSchema); diff --git a/src/services/worldStateService.ts b/src/services/worldStateService.ts index dd3cdbca..4e100c13 100644 --- a/src/services/worldStateService.ts +++ b/src/services/worldStateService.ts @@ -2,10 +2,10 @@ import { WorldState } from "@/src/models/worldStateModel"; import buildConfig from "@/static/data/buildConfig.json"; export const createWorldState = async () => { - const worldState = new WorldState() + const worldState = new WorldState(); await worldState.save(); return worldState; -} +}; export const getWorldState = async () => { let ws = await WorldState.findOne(); @@ -14,4 +14,4 @@ export const getWorldState = async () => { } return ws; -}; \ No newline at end of file +}; diff --git a/src/types/worldStateTypes.ts b/src/types/worldStateTypes.ts index 21f15615..36f12d13 100644 --- a/src/types/worldStateTypes.ts +++ b/src/types/worldStateTypes.ts @@ -3,17 +3,17 @@ import { IMongoDate, IOid } from "@/src/types/commonTypes"; export interface IMessage { LanguageCode?: string; Message: string; -}; +} export interface ILink { LanguageCode?: string; Link: string; -}; +} export interface IBaseWorldStateObject { Activation: IMongoDate; Expiry: IMongoDate; - _id?: IOid + _id?: IOid; } export interface IReward { @@ -67,7 +67,7 @@ export interface IEvent { HideEndDateModifier?: boolean; Date?: IMongoDate; _id?: IOid; -}; +} export interface IGoal extends IBaseWorldStateObject { Node: string; @@ -87,7 +87,7 @@ export interface IGoal extends IBaseWorldStateObject { Reward: IReward; InterimGoals: number[]; InterimRewards: IReward[]; -}; +} export interface IAlert extends IBaseWorldStateObject { MissionInfo: IMission; @@ -99,7 +99,7 @@ export interface ISortieMission { missionType: string; modifierType?: string; node: string; - tileset?: string + tileset?: string; } export interface ISortie extends Omit { @@ -111,8 +111,8 @@ export interface ISortie extends Omit { export interface ILiteSortie extends IBaseWorldStateObject { Reward: string; Seed: number; - Boss: string; - Missions: ISortieMission[] + Boss: String; + Missions: ISortieMission[]; } export interface IJob { @@ -163,7 +163,6 @@ export interface IFlashSale { BogoGet: number; } - export interface IInGameMarket { LandingPage: ILandingPage; } @@ -203,8 +202,8 @@ export interface IInvasionMissionInfo { export interface INodeOverride { Activation?: IMongoDate; Expiry?: IMongoDate; - Node: string, - Faction?: string, + Node: string; + Faction?: string; CustomNpcEncounters?: string[]; LevelOverride?: string; } @@ -229,7 +228,6 @@ export interface IVoidTraderScheduleInfo extends Omit