✨ feat(gvg): 添加gvg接口参数校验
This commit is contained in:
@@ -34,7 +34,7 @@ export class GVGManageHandler {
|
||||
async createLeague(msg: { name: string, icon: number, notice: string }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const { name, icon, notice } = msg;
|
||||
const { name, icon, notice = '' } = msg;
|
||||
|
||||
const checkNameResult = await GVGLeagueModel.checkName(name);
|
||||
if (checkNameResult) return resResult(STATUS.LEAGUE_NAME_DUP);
|
||||
@@ -62,7 +62,7 @@ export class GVGManageHandler {
|
||||
const roleId = session.get('roleId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const serverId = session.get('serverId');
|
||||
const { page, name } = msg;
|
||||
const { page = 1, name } = msg;
|
||||
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
if(serverType == GVG_SERVER_TYPE.NO) return resResult(STATUS.GVG_NO_SERVER_TYPE);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { checkArray } from "pinus-rpc/lib/util/utils";
|
||||
import { isArray, isBoolean, isNumber, isString } from "underscore";
|
||||
import { BLOCK_OPEATE, DEBUG_MAGIC_WORD, GM_MAIL_TYPE, GUILD_AUTH, GUILD_STRUCTURE, GVG_RESOURCE_TYPE, LEAGUE_JOB, LINEUP_NUM, MSG_TYPE } from "../consts";
|
||||
import { pvpEndParamInter } from "../pubUtils/interface";
|
||||
@@ -75,6 +76,16 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
case "role.taskHandler.getTaskList":
|
||||
case "role.taskHandler.receiveActiveReward":
|
||||
case "role.artifactHandler.composeAll":
|
||||
case "guild.gvgHandler.getData":
|
||||
case "guild.gvgHandler.getMap":
|
||||
case "guild.gvgHandler.getRec":
|
||||
case "guild.gvgHandler.getDistribute":
|
||||
case "guild.gvgHandler.getTech":
|
||||
case "guild.gvgManageHandler.getApplies":
|
||||
case "guild.gvgManageHandler.getLeagueInvitations":
|
||||
case "guild.gvgFighterHandler.getLeagueRank":
|
||||
case "guild.gvgFighterHandler.getLeagueDetailRank":
|
||||
case "guild.gvgFighterHandler.receiveBox":
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -1229,17 +1240,288 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
if(msg.job != LEAGUE_JOB.FIGHTER && msg.job != LEAGUE_JOB.PRODUCER) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgHandler.unlockTech":
|
||||
case "guild.gvgHandler.receiveBox":
|
||||
{
|
||||
if(!isNumber(msg.techId)) return false;
|
||||
if(!checkNaturalNumbers(msg.boxId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgHandler.receiveLvReward":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.lv)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgHandler.receiveLvReward":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.receiveTask)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgHandler.unlockTech":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.techId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgHandler.activate":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.techId, msg.battleFeats)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.createLeague":
|
||||
{
|
||||
let { name, icon, notice } = msg;
|
||||
if(!checkNaturalStrings(name)) return false;
|
||||
if(!checkStringIfExist(notice)) return false;
|
||||
if(!checkNaturalNumbers(icon)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.getLeagues":
|
||||
case "guild.gvgManageHandler.getInviteGuilds":
|
||||
{
|
||||
let { name, page } = msg;
|
||||
if(!checkStringIfExist(name)) return false;
|
||||
if(!checkNumberIfExist(page)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.getLeagueInfo":
|
||||
case "guild.gvgManageHandler.getGuilds":
|
||||
case "guild.gvgManageHandler.getMembers":
|
||||
case "guild.gvgManageHandler.dismiss":
|
||||
case "guild.gvgManageHandler.getCandidate":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.leagueCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.applyLeague":
|
||||
{
|
||||
if(!checkStringArray(msg.leagueCodes)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.handleApply":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.guildCode)) return false;
|
||||
if(!checkBoolean(msg.isReceive)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.inviteGuild":
|
||||
{
|
||||
if(!checkStringArray(msg.guildCodes)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.handleInvitation":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.leagueCode)) return false;
|
||||
if(!checkBoolean(msg.isReceive)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.kick":
|
||||
case "guild.gvgManageHandler.quit":
|
||||
{
|
||||
if(!checkStringArray(msg.guildCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.abdicate":
|
||||
{
|
||||
if(!checkStringArray(msg.roleId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.setLeagueInfo":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.leagueCode)) return false;
|
||||
if(!checkStringIfExist(msg.name, msg.notice)) return false;
|
||||
if(!checkNumberIfExist(msg.icon)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgManageHandler.sendMail":
|
||||
case "guild.gvgManageHandler.recruit":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.content)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.exchangeItem":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.id, msg.count)) return false;
|
||||
break;
|
||||
}
|
||||
|
||||
case "guild.gvgProduceHandler.getProduceList":
|
||||
{
|
||||
if(!checkIsInEnum(GVG_RESOURCE_TYPE, msg.type)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.getOtherFarms":
|
||||
case "guild.gvgProduceHandler.getMyFarm":
|
||||
case "guild.gvgProduceHandler.getOtherMines":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.plant":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId)) return false;
|
||||
if(!checkArray(msg.seeds)) return false;
|
||||
for(let { fieldId, seedType } of msg.seeds) {
|
||||
if(!checkNaturalNumbers(fieldId, seedType)) return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.harvest":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId)) return false;
|
||||
if(!checkNumberArray(msg.fieldIds)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.plantEnd":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId)) return false;
|
||||
if(!checkNumberArray(msg.fieldIds)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.helpHarvest":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId, msg.fieldId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.mineStart":
|
||||
case "guild.gvgProduceHandler.forestryStart":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId, msg.itemId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.mineEnd":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId, msg.fieldId)) return false;
|
||||
if(!checkArrayCanEmpty(msg.result)) return false;
|
||||
for(let { type, count } of msg.result) {
|
||||
if(!checkNaturalNumbers(type, count)) return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "guild.gvgProduceHandler.forestryEnd":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.farmId, msg.fieldId, msg.result)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgFighterHandler.getVestige":
|
||||
case "guild.gvgFighterHandler.refreshOpp":
|
||||
case "guild.gvgFighterHandler.getRec":
|
||||
case "guild.gvgFighterHandler.getPlayerRank":
|
||||
|
||||
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.vestigeId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgFighterHandler.saveLineup":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.vestigeId)) return false;
|
||||
if(!checkArray(msg.lineup)) return false;
|
||||
for(let { actorId, dataId, order } of msg.lineup) {
|
||||
if(!checkNaturalNumbers(actorId, dataId, order)) return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "guild.gvgFighterHandler.getOppLineup":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.vestigeId, msg.rank)) return false;
|
||||
if(!checkNaturalStrings(msg.roleId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgFighterHandler.chooseOpp":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.vestigeId, msg.rank, msg.myRank)) return false;
|
||||
if(!checkNaturalStrings(msg.roleId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgFighterHandler.giveupCheck":
|
||||
case "guild.gvgFighterHandler.getOppData":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.battleCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgFighterHandler.checkBattle":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.battleCode)) return false;
|
||||
if(!checkArray(msg.heroes)) return false;
|
||||
for(let { actorId, dataId, order } of msg.heroes) {
|
||||
if(!checkNaturalNumbers(actorId, dataId, order)) return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "guild.gvgFighterHandler.battleEnd":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.battleCode)) return false;
|
||||
if(!checkBoolean(msg.isSuccess)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.saveTeam":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.index, msg.head, msg.frame, msg.spine)) return false;
|
||||
if(!checkArray(msg.lineup)) return false;
|
||||
for(let { actorId, dataId, order } of msg.lineup) {
|
||||
if(!checkNaturalNumbers(actorId, dataId, order)) return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.getCity":
|
||||
case "guild.gvgBattleHandler.enterCity":
|
||||
case "guild.gvgBattleHandler.leaveCity":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.cityId)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.startMove":
|
||||
case "guild.gvgBattleHandler.stopMove":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.cityId, msg.areaId)) return false;
|
||||
if(!checkNaturalStrings(msg.teamCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.teamSettle":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.cityId, msg.areaId, msg.pointId)) return false;
|
||||
if(!checkNaturalStrings(msg.teamCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.teamLeave":
|
||||
{
|
||||
//TODO
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.battleStart":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.teamCode, msg.oppoTeamCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.battleEnd":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.battleCode)) return false;
|
||||
if(!checkBoolean(msg.isSuccess)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.useItem":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.itemId)) return false;
|
||||
if(!checkNaturalStrings(msg.teamCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.reviveTeam":
|
||||
{
|
||||
if(!checkNaturalStrings(msg.teamCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.getRecs":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.type)) return false;
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.getOverview":
|
||||
{
|
||||
break;
|
||||
}
|
||||
case "guild.gvgBattleHandler.getAreaTeams":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.cityId)) return false;
|
||||
if(!checkNumberArray(msg.areaIds)) return false;
|
||||
break;
|
||||
}
|
||||
case "order.orderHandler.applyOrder":
|
||||
{
|
||||
let { productID, payType, activityId, paramStr, useVoucher } = msg;
|
||||
@@ -1711,6 +1993,13 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
case "activity.groupShopHandler.debugRefund":
|
||||
case "activity.groupShopHandler.debugSetSum":
|
||||
case "activity.groupShopHandler.debugClearCnt":
|
||||
case "activity.groupShopHandler.debugAddLeagueItem":
|
||||
case "activity.groupShopHandler.debugHandleCost":
|
||||
case "guild.gvgProduceHandler.debugAddResource":
|
||||
case "guild.gvgFighterHandler.debugCalRec":
|
||||
case "guild.gvgFighterHandler.debugSaveScore":
|
||||
case "guild.gvgBattleHandler.createCity":
|
||||
|
||||
{
|
||||
if (msg.magicWord !== DEBUG_MAGIC_WORD || !isDevelopEnv()) return false;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user