/
aychuikov
/
ProfessionalJuniorAppForTest
Обзор
Документация
Войти
/
aychuikov
/
ProfessionalJuniorAppForTest
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/utils/validationSchemas.js
79 строк
2 KB
Tank4444
first_commit
05 фев 2026, 04:20
05 фев 2026, 04:20
37e50d6
Код
Авторство
О чём код?
const Joi = require('joi'); const auth = { register: { body: Joi.object({ email: Joi.string().email().required(), password: Joi.string().min(6).required(), firstName: Joi.string().required(), lastName: Joi.string().required(), acceptTerms: Joi.boolean() // Optional but good to allow }) }, login: { body: Joi.object({ email: Joi.string().email().required(), password: Joi.string().required() }) }, changePassword: { body: Joi.object({ currentPassword: Joi.string().required(), newPassword: Joi.string().min(6).required() }) } }; const user = { updateProfile: { body: Joi.object({ firstName: Joi.string(), lastName: Joi.string(), bio: Joi.string().allow('', null), preferences: Joi.object().unknown() }) } }; const exercise = { randomWord: { query: Joi.object({ language: Joi.string().valid('en', 'ru'), sessionId: Joi.string(), limit: Joi.number().integer().min(1) // sometimes used in similar endpoints }) }, startSession: { body: Joi.object({ exerciseType: Joi.string().required(), moduleId: Joi.string().required() }) }, dictionary: { query: Joi.object({ limit: Joi.number().integer().min(1).default(100), offset: Joi.number().integer().min(0).default(0) }) } }; const game = { create: { body: Joi.object({ gameType: Joi.string().required() }) }, leaderboard: { query: Joi.object({ limit: Joi.number().integer().min(1).default(50), offset: Joi.number().integer().min(0).default(0) }) } }; module.exports = { auth, user, exercise, game };