-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.js
More file actions
38 lines (36 loc) · 1.18 KB
/
schema.js
File metadata and controls
38 lines (36 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const joi = require("joi");
module.exports.listingSchema = joi.object({
listing: joi
.object({
title: joi.string().required(),
description: joi.string().required(),
price: joi.number().required().min(0),
image: joi
.object({
url: joi
.string()
.uri()
.allow("")
.default(
"https://media.cntraveler.com/photos/53da60a46dec627b149e66f4/master/w_1600%2Cc_limit/hilton-moorea-lagoon-resort-spa-moorea-french-poly--110160-1.jpg"
),
filename: joi.string().allow("").default("default.jpg"),
})
.default({
url: "https://media.cntraveler.com/photos/53da60a46dec627b149e66f4/master/w_1600%2Cc_limit/hilton-moorea-lagoon-resort-spa-moorea-french-poly--110160-1.jpg",
filename: "default.jpg",
}),
location: joi.string().required(),
country: joi.string().required(),
category: joi.string().required(),
})
.required(),
});
module.exports.reviewSchema = joi
.object({
review: joi.object({
rating: joi.number().required().min(1).max(5),
comment: joi.string().required(),
}),
})
.required();