返回提交历史
Added
src/controllers/api/setBadlandBudgetCapsController.ts
+29
-0
Modified
src/models/guildModel.ts
+3
-0
Modified
src/routes/api.ts
+2
-0
Modified
src/services/guildService.ts
+5
-1
Modified
src/types/guildTypes.ts
+8
-0
XFEstudio/XFESpaceNinjaServer
feat: setBadlandBudgetCaps (#3492)
Closes #3482 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3492 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
e1237fec
代码差异
5 个文件
+47
-1
@@ -0,0 +1,29 @@
1
import type { RequestHandler } from "express";
2
import { hasGuildPermission } from "../../services/guildService.ts";
3
import { getAccountIdForRequest } from "../../services/loginService.ts";
4
import { getInventory } from "../../services/inventoryService.ts";
5
import { GuildPermission } from "../../types/guildTypes.ts";
6
import { getJSONfromString } from "../../helpers/stringHelpers.ts";
7
import { Guild } from "../../models/guildModel.ts";
8
9
export const setBadlandBudgetCapsController: RequestHandler = async (req, res) => {
10
const accountId = await getAccountIdForRequest(req);
11
const inventory = await getInventory(accountId, "GuildId");
12
const guild = await Guild.findById(inventory.GuildId); // this request does not have a guildId parameter :(
13
if (!guild || !(await hasGuildPermission(guild, accountId, GuildPermission.Treasurer))) {
14
res.status(400).send("-1").end();
15
return;
16
}
17
const payload = getJSONfromString<ISetBadlandBudgetCapsRequest>(String(req.body));
18
guild.MaxBattlePayReserve = payload.MaxBattlePayReserve;
19
guild.MaxMissionBattlePay = payload.MaxMissionBattlePay;
20
guild.MinMissionBattlePay = payload.MinMissionBattlePay;
21
await guild.save();
22
res.json(payload);
23
};
24
25
interface ISetBadlandBudgetCapsRequest {
26
MaxBattlePayReserve: number;
27
MaxMissionBattlePay: number;
28
MinMissionBattlePay: number;
29
}
@@ -229,6 +229,9 @@ const guildSchema = new Schema<IGuildDatabase>(
229
229
VaultShipDecorations: { type: [typeCountSchema], default: undefined },
230
230
VaultFusionTreasures: { type: [fusionTreasuresSchema], default: undefined },
231
231
VaultDecoRecipes: { type: [typeCountSchema], default: undefined },
232
MaxBattlePayReserve: Number,
233
MaxMissionBattlePay: Number,
234
MinMissionBattlePay: Number,
232
235
TechProjects: { type: [techProjectSchema], default: undefined },
233
236
ActiveDojoColorResearch: { type: String, default: "" },
234
237
Class: { type: Number, default: 0 },
@@ -136,6 +136,7 @@ import { sendMsgToInBoxController } from "../controllers/api/sendMsgToInBoxContr
136
136
import { setActiveQuestController } from "../controllers/api/setActiveQuestController.ts";
137
137
import { setActiveShipController } from "../controllers/api/setActiveShipController.ts";
138
138
import { setAllianceGuildPermissionsController } from "../controllers/api/setAllianceGuildPermissionsController.ts";
139
import { setBadlandBudgetCapsController } from "../controllers/api/setBadlandBudgetCapsController.ts";
139
140
import { setBootLocationController } from "../controllers/api/setBootLocationController.ts";
140
141
import { setDojoComponentColorsController } from "../controllers/api/setDojoComponentColorsController.ts";
141
142
import { setDojoComponentMessageController } from "../controllers/api/setDojoComponentMessageController.ts";
@@ -365,6 +366,7 @@ apiRouter.post("/saveVaultAutoContribute.php", saveVaultAutoContributeController
365
366
apiRouter.post("/sell.php", sellController);
366
367
apiRouter.post("/sendMsgToInBox.php", sendMsgToInBoxController);
367
368
apiRouter.post("/sendPetToStasis.php", retrievePetFromStasisController);
369
apiRouter.post("/setBadlandBudgetCaps.php", setBadlandBudgetCapsController);
368
370
apiRouter.post("/setDojoComponentColors.php", setDojoComponentColorsController);
369
371
apiRouter.post("/setDojoComponentMessage.php", setDojoComponentMessageController);
370
372
apiRouter.post("/setDojoComponentSettings.php", setDojoComponentSettingsController);
@@ -143,7 +143,11 @@ export const getGuildVault = (guild: TGuildDatabaseDocument): IGuildVault => {
143
143
DojoRefundPremiumCredits: guild.VaultPremiumCredits,
144
144
ShipDecorations: guild.VaultShipDecorations,
145
145
FusionTreasures: guild.VaultFusionTreasures,
146
DecoRecipes: guild.VaultDecoRecipes
146
DecoRecipes: guild.VaultDecoRecipes,
147
148
MaxBattlePayReserve: guild.MaxBattlePayReserve,
149
MaxMissionBattlePay: guild.MaxMissionBattlePay,
150
MinMissionBattlePay: guild.MinMissionBattlePay
147
151
};
148
152
};
149
153
@@ -66,6 +66,10 @@ export interface IGuildDatabase extends IGuildCheats {
66
66
VaultFusionTreasures?: IFusionTreasure[];
67
67
VaultDecoRecipes?: ITypeCount[];
68
68
69
MaxBattlePayReserve?: number;
70
MaxMissionBattlePay?: number;
71
MinMissionBattlePay?: number;
72
69
73
TechProjects?: ITechProjectDatabase[];
70
74
ActiveDojoColorResearch: string;
71
75
@@ -144,6 +148,10 @@ export interface IGuildVault {
144
148
ShipDecorations?: ITypeCount[];
145
149
FusionTreasures?: IFusionTreasure[];
146
150
DecoRecipes?: ITypeCount[]; // Event Trophies
151
152
MaxBattlePayReserve?: number;
153
MaxMissionBattlePay?: number;
154
MinMissionBattlePay?: number;
147
155
}
148
156
149
157
export interface IDojoClient {