X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fsearch.ts;h=a8f25883832c4588b122eee4a801904a5bcf136a;hb=eb34ec30e0b57286fc6f85160490d2e973a3b0b1;hp=ee732b15aa1f83b0a1253249d65a02f52e2b045d;hpb=c8861d5dc0436ef4342ce517241e3591fa256a13;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/search.ts b/server/helpers/custom-validators/search.ts index ee732b15a..a8f258838 100644 --- a/server/helpers/custom-validators/search.ts +++ b/server/helpers/custom-validators/search.ts @@ -1,5 +1,7 @@ -import * as validator from '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)) @@ -9,14 +11,27 @@ function isStringArray (value: any) { return isArray(value) && value.every(v => typeof v === 'string') } -function isNSFWQueryValid (value: any) { +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, - isNSFWQueryValid + isBooleanBothQueryValid, + isSearchTargetValid }