+function isDateValid (value: string) {
+ return exists(value) && validator.isISO8601(value)
+}
+
+function isIdValid (value: string) {
+ return exists(value) && validator.isInt('' + value)
+}
+
+function isUUIDValid (value: string) {
+ return exists(value) && validator.isUUID('' + value, 4)
+}
+
+function isIdOrUUIDValid (value: string) {
+ return isIdValid(value) || isUUIDValid(value)
+}
+
+function isBooleanValid (value: string) {
+ return typeof value === 'boolean' || (typeof value === 'string' && validator.isBoolean(value))
+}
+
+function isFileValid (
+ files: { [ fieldname: string ]: Express.Multer.File[] } | Express.Multer.File[],
+ mimeTypeRegex: string,
+ field: string,
+ optional = false
+) {
+ // Should have files
+ if (!files) return optional
+ if (isArray(files)) return optional
+
+ // Should have a file
+ const fileArray = files[ field ]
+ if (!fileArray || fileArray.length === 0) {
+ return optional
+ }
+
+ // The file should exist
+ const file = fileArray[ 0 ]
+ if (!file || !file.originalname) return false
+
+ return new RegExp(`^${mimeTypeRegex}$`, 'i').test(file.mimetype)
+}
+