stricter validation

This commit is contained in:
Miodec 2023-07-17 13:54:24 +02:00
parent 448c1061b8
commit 1a8f0b8f18
4 changed files with 41 additions and 11 deletions

View file

@ -84,7 +84,7 @@ router.delete(
checkIfUserCanManageApeKeys,
validateRequest({
params: {
apeKeyId: joi.string().required(),
apeKeyId: joi.string().token().required(),
},
}),
asyncHandler(ApeKeyController.deleteApeKey)

View file

@ -11,9 +11,19 @@ import {
} from "../../middlewares/api-utils";
const BASE_LEADERBOARD_VALIDATION_SCHEMA = {
language: joi.string().required(),
mode: joi.string().required(),
mode2: joi.string().required(),
language: joi
.string()
.max(50)
.pattern(/^[a-zA-Z0-9_+]+$/)
.required(),
mode: joi
.string()
.valid("time", "words", "quote", "zen", "custom")
.required(),
mode2: joi
.string()
.regex(/^(\d)+|custom|zen/)
.required(),
};
const LEADERBOARD_VALIDATION_SCHEMA_WITH_LIMIT = {

View file

@ -5,9 +5,19 @@ import { asyncHandler, validateRequest } from "../../middlewares/api-utils";
import joi from "joi";
const GET_MODE_STATS_VALIDATION_SCHEMA = {
language: joi.string().required(),
mode: joi.string().required(),
mode2: joi.string().required(),
language: joi
.string()
.max(50)
.pattern(/^[a-zA-Z0-9_+]+$/)
.required(),
mode: joi
.string()
.valid("time", "words", "quote", "zen", "custom")
.required(),
mode2: joi
.string()
.regex(/^(\d)+|custom|zen/)
.required(),
};
const router = Router();

View file

@ -181,8 +181,15 @@ router.patch(
.string()
.valid("time", "words", "quote", "zen", "custom")
.required(),
mode2: joi.string().required(),
language: joi.string().required(),
mode2: joi
.string()
.regex(/^(\d)+|custom|zen/)
.required(),
language: joi
.string()
.max(50)
.pattern(/^[a-zA-Z0-9_+]+$/)
.required(),
rank: joi.number().required(),
},
}),
@ -413,8 +420,11 @@ router.get(
withApeRateLimiter(RateLimit.userGet),
validateRequest({
query: {
mode: joi.string().required(),
mode2: joi.string(),
mode: joi
.string()
.valid("time", "words", "quote", "zen", "custom")
.required(),
mode2: joi.string().regex(/^(\d)+|custom|zen/),
},
}),
asyncHandler(UserController.getPersonalBests)