X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fsearch.ts;h=a8f25883832c4588b122eee4a801904a5bcf136a;hb=eb34ec30e0b57286fc6f85160490d2e973a3b0b1;hp=2fde391602014aa33ee46726e7dddfa7c7c041fc;hpb=d525fc399a14a8b16eaad6d4c0bc0a9c4093c3c9;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/search.ts b/server/helpers/custom-validators/search.ts index 2fde39160..a8f258838 100644 --- a/server/helpers/custom-validators/search.ts +++ b/server/helpers/custom-validators/search.ts @@ -1,7 +1,7 @@ -import * as validator from 'validator' -import 'express-validator' - -import { isArray } from './misc' +import validator from 'validator' +import { SearchTargetType } from '@shared/models/search/search-target-query.model' +import { isArray, exists } from './misc' +import { CONFIG } from '@server/initializers/config' function isNumberArray (value: any) { return isArray(value) && value.every(v => validator.isInt('' + v)) @@ -11,9 +11,27 @@ function isStringArray (value: any) { return isArray(value) && value.every(v => typeof v === 'string') } +function isBooleanBothQueryValid (value: any) { + return value === 'true' || value === 'false' || value === 'both' +} + +function isSearchTargetValid (value: SearchTargetType) { + if (!exists(value)) return true + + const searchIndexConfig = CONFIG.SEARCH.SEARCH_INDEX + + if (value === 'local' && (!searchIndexConfig.ENABLED || !searchIndexConfig.DISABLE_LOCAL_SEARCH)) return true + + if (value === 'search-index' && searchIndexConfig.ENABLED) return true + + return false +} + // --------------------------------------------------------------------------- export { isNumberArray, - isStringArray + isStringArray, + isBooleanBothQueryValid, + isSearchTargetValid }