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: "" },
 | 
			
		||||
        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