feat: edit clan tax rate #1183
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: "" },
|
||||
LongMOTD: { type: longMOTDSchema, default: undefined },
|
||||
Ranks: { type: [guildRankSchema], default: defaultRanks },
|
||||
TradeTax: { type: Number, default: 0 },
|
||||
DojoComponents: { type: [dojoComponentSchema], default: [] },
|
||||
DojoCapacity: { type: Number, default: 100 },
|
||||
DojoEnergy: { type: Number, default: 5 },
|
||||
|
@ -102,6 +102,7 @@ import { surveysController } from "@/src/controllers/api/surveysController";
|
||||
import { syndicateSacrificeController } from "@/src/controllers/api/syndicateSacrificeController";
|
||||
import { syndicateStandingBonusController } from "@/src/controllers/api/syndicateStandingBonusController";
|
||||
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
|
||||
import { tradingController } from "@/src/controllers/api/tradingController";
|
||||
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
|
||||
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
|
||||
import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
|
||||
@ -153,6 +154,7 @@ apiRouter.get("/setSupportedSyndicate.php", setSupportedSyndicateController);
|
||||
apiRouter.get("/startLibraryDailyTask.php", startLibraryDailyTaskController);
|
||||
apiRouter.get("/startLibraryPersonalTarget.php", startLibraryPersonalTargetController);
|
||||
apiRouter.get("/surveys.php", surveysController);
|
||||
apiRouter.get("/trading.php", tradingController);
|
||||
apiRouter.get("/updateSession.php", updateSessionGetController);
|
||||
|
||||
// post
|
||||
|
@ -90,6 +90,7 @@ export const getGuildClient = async (guild: TGuildDatabaseDocument, accountId: s
|
||||
LongMOTD: guild.LongMOTD,
|
||||
Members: members,
|
||||
Ranks: guild.Ranks,
|
||||
TradeTax: guild.TradeTax,
|
||||
Tier: 1,
|
||||
Vault: getGuildVault(guild),
|
||||
Class: guild.Class,
|
||||
|
@ -8,10 +8,8 @@ export interface IGuildClient {
|
||||
MOTD: string;
|
||||
LongMOTD?: ILongMOTD;
|
||||
Members: IGuildMemberClient[];
|
||||
Ranks: {
|
||||
Name: string;
|
||||
Permissions: number;
|
||||
}[];
|
||||
Ranks: IGuildRank[];
|
||||
TradeTax: number;
|
||||
Tier: number;
|
||||
Vault: IGuildVault;
|
||||
Class: number;
|
||||
@ -27,6 +25,7 @@ export interface IGuildDatabase {
|
||||
MOTD: string;
|
||||
LongMOTD?: ILongMOTD;
|
||||
Ranks: IGuildRank[];
|
||||
TradeTax: number;
|
||||
|
||||
DojoComponents: IDojoComponentDatabase[];
|
||||
DojoCapacity: number;
|
||||
|
Loading…
x
Reference in New Issue
Block a user