feat(gvg): 添加gvg接口参数校验

This commit is contained in:
luying
2023-02-06 11:25:34 +08:00
parent 596e6e18cf
commit 394d88d20e
2 changed files with 294 additions and 5 deletions

View File

@@ -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);

View File

@@ -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;