forked from OpenWF/SpaceNinjaServer
feat: edit clan tax rate (#1183)
Reviewed-on: OpenWF/SpaceNinjaServer#1183
This commit is contained in:
parent
114e175efb
commit
25dfbf4724
23
src/controllers/api/tradingController.ts
Normal file
23
src/controllers/api/tradingController.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { getGuildForRequestEx, hasAccessToDojo, hasGuildPermission } from "@/src/services/guildService";
|
||||||
|
import { getInventory } from "@/src/services/inventoryService";
|
||||||
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
|
import { GuildPermission } from "@/src/types/guildTypes";
|
||||||
|
import { RequestHandler } from "express";
|
||||||
|
|
||||||
|
export const tradingController: RequestHandler = async (req, res) => {
|
||||||
|
const accountId = await getAccountIdForRequest(req);
|
||||||
|
const inventory = await getInventory(accountId, "GuildId LevelKeys");
|
||||||
|
const guild = await getGuildForRequestEx(req, inventory);
|
||||||
|
const op = req.query.op as string;
|
||||||
|
if (op == "5") {
|
||||||
|
if (!hasAccessToDojo(inventory) || !(await hasGuildPermission(guild, accountId, GuildPermission.Treasurer))) {
|
||||||
|
res.status(400).send("-1").end();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
guild.TradeTax = parseInt(req.query.tax as string);
|
||||||
|
await guild.save();
|
||||||
|
res.send(guild.TradeTax).end();
|
||||||
|
} else {
|
||||||
|
throw new Error(`unknown trading op: ${op}`);
|
||||||
|
}
|
||||||
|
};
|
@ -142,6 +142,7 @@ const guildSchema = new Schema<IGuildDatabase>(
|
|||||||
MOTD: { type: String, default: "" },
|
MOTD: { type: String, default: "" },
|
||||||
LongMOTD: { type: longMOTDSchema, default: undefined },
|
LongMOTD: { type: longMOTDSchema, default: undefined },
|
||||||
Ranks: { type: [guildRankSchema], default: defaultRanks },
|
Ranks: { type: [guildRankSchema], default: defaultRanks },
|
||||||
|
TradeTax: { type: Number, default: 0 },
|
||||||
DojoComponents: { type: [dojoComponentSchema], default: [] },
|
DojoComponents: { type: [dojoComponentSchema], default: [] },
|
||||||
DojoCapacity: { type: Number, default: 100 },
|
DojoCapacity: { type: Number, default: 100 },
|
||||||
DojoEnergy: { type: Number, default: 5 },
|
DojoEnergy: { type: Number, default: 5 },
|
||||||
|
@ -102,6 +102,7 @@ import { surveysController } from "@/src/controllers/api/surveysController";
|
|||||||
import { syndicateSacrificeController } from "@/src/controllers/api/syndicateSacrificeController";
|
import { syndicateSacrificeController } from "@/src/controllers/api/syndicateSacrificeController";
|
||||||
import { syndicateStandingBonusController } from "@/src/controllers/api/syndicateStandingBonusController";
|
import { syndicateStandingBonusController } from "@/src/controllers/api/syndicateStandingBonusController";
|
||||||
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
|
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
|
||||||
|
import { tradingController } from "@/src/controllers/api/tradingController";
|
||||||
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
|
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
|
||||||
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
|
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
|
||||||
import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
|
import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
|
||||||
@ -153,6 +154,7 @@ apiRouter.get("/setSupportedSyndicate.php", setSupportedSyndicateController);
|
|||||||
apiRouter.get("/startLibraryDailyTask.php", startLibraryDailyTaskController);
|
apiRouter.get("/startLibraryDailyTask.php", startLibraryDailyTaskController);
|
||||||
apiRouter.get("/startLibraryPersonalTarget.php", startLibraryPersonalTargetController);
|
apiRouter.get("/startLibraryPersonalTarget.php", startLibraryPersonalTargetController);
|
||||||
apiRouter.get("/surveys.php", surveysController);
|
apiRouter.get("/surveys.php", surveysController);
|
||||||
|
apiRouter.get("/trading.php", tradingController);
|
||||||
apiRouter.get("/updateSession.php", updateSessionGetController);
|
apiRouter.get("/updateSession.php", updateSessionGetController);
|
||||||
|
|
||||||
// post
|
// post
|
||||||
|
@ -90,6 +90,7 @@ export const getGuildClient = async (guild: TGuildDatabaseDocument, accountId: s
|
|||||||
LongMOTD: guild.LongMOTD,
|
LongMOTD: guild.LongMOTD,
|
||||||
Members: members,
|
Members: members,
|
||||||
Ranks: guild.Ranks,
|
Ranks: guild.Ranks,
|
||||||
|
TradeTax: guild.TradeTax,
|
||||||
Tier: 1,
|
Tier: 1,
|
||||||
Vault: getGuildVault(guild),
|
Vault: getGuildVault(guild),
|
||||||
Class: guild.Class,
|
Class: guild.Class,
|
||||||
|
@ -8,10 +8,8 @@ export interface IGuildClient {
|
|||||||
MOTD: string;
|
MOTD: string;
|
||||||
LongMOTD?: ILongMOTD;
|
LongMOTD?: ILongMOTD;
|
||||||
Members: IGuildMemberClient[];
|
Members: IGuildMemberClient[];
|
||||||
Ranks: {
|
Ranks: IGuildRank[];
|
||||||
Name: string;
|
TradeTax: number;
|
||||||
Permissions: number;
|
|
||||||
}[];
|
|
||||||
Tier: number;
|
Tier: number;
|
||||||
Vault: IGuildVault;
|
Vault: IGuildVault;
|
||||||
Class: number;
|
Class: number;
|
||||||
@ -27,6 +25,7 @@ export interface IGuildDatabase {
|
|||||||
MOTD: string;
|
MOTD: string;
|
||||||
LongMOTD?: ILongMOTD;
|
LongMOTD?: ILongMOTD;
|
||||||
Ranks: IGuildRank[];
|
Ranks: IGuildRank[];
|
||||||
|
TradeTax: number;
|
||||||
|
|
||||||
DojoComponents: IDojoComponentDatabase[];
|
DojoComponents: IDojoComponentDatabase[];
|
||||||
DojoCapacity: number;
|
DojoCapacity: number;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user