This commit is contained in:
Kalle (Sendou) 2020-09-04 21:03:57 +03:00
parent 5213a55108
commit e6ac7047dc
3 changed files with 60 additions and 30 deletions

View File

@ -308,7 +308,12 @@ const resolvers = {
},
searchForDraftCup: async (_, args) => {
const tournament = await DetailedTournament.findOne({
name: { $regex: new RegExp(args.name, "i") },
name: {
$regex: new RegExp(
args.name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
}).populate("top_3_discord_users")
if (!tournament) throw new UserInputError("no draft cup with that name")

View File

@ -48,7 +48,7 @@ const resolvers = {
const placements = await Placement.find({ weapon: args.weapon })
.sort({ x_power: "desc" })
.select({ weapon: 0 })
.catch(e => {
.catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
@ -85,7 +85,7 @@ const resolvers = {
throw new UserInputError("no id or twitter provided", {
invalidArgs: args,
})
const player = await Player.findOne(searchCriteria).catch(e => {
const player = await Player.findOne(searchCriteria).catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
@ -97,7 +97,7 @@ const resolvers = {
const placements = await Placement.find({ unique_id: player.unique_id })
.sort({ year: "desc", month: "desc" })
.catch(e => {
.catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
@ -112,19 +112,24 @@ const resolvers = {
.sort({ x_power: "desc" })
.limit(100)
.select({ name: 1, weapon: 1, x_power: 1, unique_id: 1 })
.catch(e => {
.catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
})
} else {
placements = await Placement.find({
name: { $regex: args.name, $options: "i" },
name: {
$regex: new RegExp(
args.name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
})
.sort({ x_power: "desc" })
.limit(100)
.select({ name: 1, weapon: 1, x_power: 1, unique_id: 1 })
.catch(e => {
.catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
@ -133,7 +138,7 @@ const resolvers = {
let uids = []
return placements.filter(p => {
return placements.filter((p) => {
if (uids.length === 21) {
return false
}
@ -151,7 +156,12 @@ const resolvers = {
const searchCriteria = {}
if (args.name)
searchCriteria.name = { $regex: new RegExp(args.name, "i") }
searchCriteria.name = {
$regex: new RegExp(
args.name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
}
if (args.weapon) searchCriteria.weapon = args.weapon
if (args.mode) searchCriteria.mode = args.mode
if (args.unique_id) searchCriteria.unique_id = args.unique_id
@ -160,7 +170,7 @@ const resolvers = {
const placementCount = await Placement.countDocuments(
searchCriteria
).catch(e => {
).catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
@ -180,7 +190,7 @@ const resolvers = {
.limit(perPage)
.sort({ x_power: "desc" })
.populate("player")
.catch(e => {
.catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})

View File

@ -81,13 +81,13 @@ const resolvers = {
if (!args.id.match(/^[0-9a-fA-F]{24}$/)) return null
const rounds = await Round.find({ tournament_id: args.id })
.sort({ round_number: "asc", game_number: "asc" })
.catch(e => {
.catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
})
const tournament = await Tournament.findById(args.id).catch(e => {
const tournament = await Tournament.findById(args.id).catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
@ -99,7 +99,8 @@ const resolvers = {
},
searchForTournaments: async (root, args) => {
Object.keys(args).forEach(
key => (args[key] == null || args[key].length === 0) && delete args[key]
(key) =>
(args[key] == null || args[key].length === 0) && delete args[key]
)
const tournamentsPerPage = 18
@ -112,14 +113,18 @@ const resolvers = {
if (args.team_name) {
roundSearchCriteria.$or.push({
winning_team_name: {
$regex: args.team_name,
$options: "i",
$regex: new RegExp(
args.team_name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
})
roundSearchCriteria.$or.push({
losing_team_name: {
$regex: args.team_name,
$options: "i",
$regex: new RegExp(
args.team_name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
})
}
@ -127,14 +132,18 @@ const resolvers = {
if (args.player_name) {
roundSearchCriteria.$or.push({
winning_team_players: {
$regex: args.player_name,
$options: "i",
$regex: new RegExp(
args.player_name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
})
roundSearchCriteria.$or.push({
losing_team_players: {
$regex: args.player_name,
$options: "i",
$regex: new RegExp(
args.player_name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
})
}
@ -142,14 +151,18 @@ const resolvers = {
if (args.unique_id) {
roundSearchCriteria.$or.push({
winning_team_unique_ids: {
$regex: args.unique_id,
$options: "i",
$regex: new RegExp(
args.unique_id.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
})
roundSearchCriteria.$or.push({
losing_team_unique_ids: {
$regex: args.unique_id,
$options: "i",
$regex: new RegExp(
args.unique_id.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
},
})
}
@ -206,13 +219,15 @@ const resolvers = {
if (args.tournament_name)
tournamentSearchCriteria.name = {
$regex: args.tournament_name,
$options: "i",
$regex: new RegExp(
args.tournament_name.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"),
"i"
),
}
const tournamentCount = await Tournament.countDocuments(
tournamentSearchCriteria
).catch(e => {
).catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})
@ -231,7 +246,7 @@ const resolvers = {
.skip(tournamentsPerPage * currentPage)
.limit(tournamentsPerPage)
.sort({ date: "desc" })
.catch(e => {
.catch((e) => {
throw new UserInputError(e.message, {
invalidArgs: args,
})