basic-expressjs/utils/schemas/movies.js

40 lines
1.2 KiB
JavaScript
Raw Normal View History

2021-09-15 18:47:11 +00:00
const joi = require('@hapi/joi');
const movieIdSchema = joi.string().regex(/^[0-9a-fA-F]{24}$/);
const movieTitleSchema = joi.string().max(80);
const movieYearSchema = joi.number().min(1888).max(2077);
const movieCoverSchema = joi.string().uri();
const movieDescriptionSchema = joi.string().max(300);
const movieDurationSchema = joi.number().min(1).max(300);
const movieContentRatingSchema = joi.string().max(5);
const movieSourcesSchema = joi.string().uri();
const movieTagsSchema = joi.array().items(joi.string().max(50));
const createMovieSchema = {
title: movieTitleSchema.required(),
year: movieYearSchema.required(),
cover: movieCoverSchema.required(),
description: movieDescriptionSchema.required(),
duration: movieDurationSchema.required(),
contentRating: movieContentRatingSchema.required(),
source: movieSourcesSchema.required(),
tags: movieTagsSchema,
};
const updateMovieSchema = {
title: movieTitleSchema,
year: movieYearSchema,
cover: movieCoverSchema,
description: movieDescriptionSchema,
duration: movieDurationSchema,
contentRating: movieContentRatingSchema,
source: movieSourcesSchema,
tags: movieTagsSchema,
};
module.exports = {
movieIdSchema,
createMovieSchema,
updateMovieSchema,
}