-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathvalidationSchemas.js
70 lines (68 loc) · 2.71 KB
/
validationSchemas.js
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
const Joi = require('joi');
const schemas = {
loginValidation: Joi.object().keys({
username: Joi.string(),
password: Joi.string(),
isRestaurantOwner: Joi.boolean()
}),
registrationCustomerValidation: Joi.object().keys({
username: Joi.string().min(5).required(),
email: Joi.string().trim().email({minDomainAtoms: 1}).required(),
password: Joi.string().min(5).required(),
}),
registrationOwnerValidation: Joi.object().keys({
username: Joi.string().min(5).required(),
name: Joi.string().min(1).required(),
surname: Joi.string().min(1).required(),
email: Joi.string().trim().email({minDomainAtoms: 1}).required(),
password: Joi.string().min(5).required(),
}),
registrationConsultantValidation: Joi.object().keys({
username: Joi.string().min(5).required(),
password: Joi.string().min(5).required(),
name: Joi.string().min(1).required(),
surname: Joi.string().min(1).required(),
email: Joi.string().trim().email({minDomainAtoms: 1}).required(),
companySecret: Joi.string().min(5).required()
}),
//Add an empty menu to a restaurant
addMenuValidation: Joi.object().keys({
name: Joi.string().min(1).required(),
description: Joi.string().min(1).required(),
tags: Joi.array().items(Joi.string())
}),
//Edit a menu's information (not its items)
editMenuValidation: Joi.object().keys({
name: Joi.string().min(1).required(),
description: Joi.string().min(1).required(),
tags: Joi.array().items(Joi.string())
}),
//Edit restaurant's information
configureDataOfRestaurantValidation: Joi.object().keys({
name: Joi.string().min(1).required(),
address: Joi.string().min(1).required(),
city: Joi.string().min(1).required(),
country: Joi.string().min(1).required(),
latitude: Joi.number().required(),
longitude: Joi.number().required(),
imageID: Joi.number().integer().required(),
openingHours: Joi.array().items(Joi.object().keys({
day: Joi.string(),
openTime: Joi.string(),
closeTime: Joi.string()
}))
}),
//Edit profile data of the owner
editOwnerProfileValidation: Joi.object().keys({
email: Joi.string().trim().email({minDomainAtoms: 1}).required(),
name: Joi.string().min(1).required(),
surname: Joi.string().min(1).required(),
}),
//Change the password of the owner
changeOwnerPassword: Joi.object().keys({
oldPassword: Joi.string().required(),
newPassword: Joi.string().min(5).required(),
})
// define all the other schemas below
};
module.exports = schemas;