stricted result schema

This commit is contained in:
Miodec 2023-06-04 00:07:36 +02:00
parent 560308a956
commit f51a64727e

View file

@ -6,16 +6,16 @@ const RESULT_SCHEMA = joi
afkDuration: joi.number().min(0).required(),
bailedOut: joi.boolean().required(),
blindMode: joi.boolean().required(),
challenge: joi.string(),
charStats: joi.array().items(joi.number().min(0)).required(),
challenge: joi.string().max(100),
charStats: joi.array().items(joi.number().min(0)).length(4).required(),
charTotal: joi.number().min(0),
chartData: joi
.alternatives()
.try(
joi.object({
wpm: joi.array().items(joi.number().min(0)).required(),
raw: joi.array().items(joi.number().min(0)).required(),
err: joi.array().items(joi.number().min(0)).required(),
wpm: joi.array().max(122).items(joi.number().min(0)).required(),
raw: joi.array().max(122).items(joi.number().min(0)).required(),
err: joi.array().max(122).items(joi.number().min(0)).required(),
}),
joi.string().valid("toolong")
)
@ -29,8 +29,8 @@ const RESULT_SCHEMA = joi
time: joi.number().allow(null),
}),
difficulty: joi.string().valid("normal", "expert", "master").required(),
funbox: joi.string().required(),
hash: joi.string().required(),
funbox: joi.string().max(100).required(),
hash: joi.string().max(100).required(),
incompleteTestSeconds: joi.number().min(0).required(),
incompleteTests: joi
.array()
@ -41,25 +41,23 @@ const RESULT_SCHEMA = joi
})
)
.required(),
keyConsistency: joi.number().min(0).required(),
keyConsistency: joi.number().min(0).max(100).required(),
keyDuration: joi
.alternatives()
.try(
joi.array().items(joi.number().min(0)),
joi.array().max(122).items(joi.number().min(0)),
joi.string().valid("toolong")
),
keySpacing: joi
.alternatives()
.try(
joi.array().items(joi.number().min(0)),
joi.array().max(122).items(joi.number().min(0)),
joi.string().valid("toolong")
),
keyOverlap: joi.number().min(0),
lastKeyToEnd: joi.number().min(0),
startToFirstKey: joi.number().min(0),
lang: joi.string(),
stringified: joi.string(),
language: joi.string().required(),
language: joi.string().max(100).required(),
lazyMode: joi.boolean().required(),
mode: joi
.string()
@ -71,16 +69,15 @@ const RESULT_SCHEMA = joi
quoteLength: joi.number(),
rawWpm: joi.number().min(0).max(420).required(),
restartCount: joi.number().required(),
smoothConsistency: joi.number().optional(), // to be removed
tags: joi
.array()
.items(joi.string().regex(/^[a-f\d]{24}$/i))
.required(),
testDuration: joi.number().required().min(1),
timestamp: joi.date().timestamp().required(),
uid: joi.string().required(),
uid: joi.string().max(100).required(),
wpm: joi.number().min(0).max(420).required(),
wpmConsistency: joi.number().min(0).required(),
wpmConsistency: joi.number().min(0).max(100).required(),
})
.required();