X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Futils.ts;h=59ce83c16e09a79b3fbeac8a97a2b016b0e6e7a5;hb=9a4a9b6c4e193739d542f73ee85cd305067f2aea;hp=1bf61d2a693021aff86a88732587dfabe3ccd87b;hpb=792dbaf07f83fbe3f1d209cd9edf190442c7d2f3;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/utils.ts b/server/models/utils.ts index 1bf61d2a6..59ce83c16 100644 --- a/server/models/utils.ts +++ b/server/models/utils.ts @@ -1,5 +1,5 @@ -// Translate for example "-name" to [ 'name', 'DESC' ] -function getSort (value: string) { +// Translate for example "-name" to [ [ 'name', 'DESC' ], [ 'id', 'ASC' ] ] +function getSort (value: string, lastSort: string[] = [ 'id', 'ASC' ]) { let field: string let direction: 'ASC' | 'DESC' @@ -11,25 +11,26 @@ function getSort (value: string) { field = value } - return [ field, direction ] + return [ [ field, direction ], lastSort ] } -function addMethodsToModel (model: any, classMethods: Function[], instanceMethods: Function[] = []) { - classMethods.forEach(m => model[m.name] = m) - instanceMethods.forEach(m => model.prototype[m.name] = m) -} +function getSortOnModel (model: any, value: string, lastSort: string[] = [ 'id', 'ASC' ]) { + let [ firstSort ] = getSort(value) -function getSortOnModel (model: any, value: string) { - let sort = getSort(value) + if (model) return [ [ model, firstSort[0], firstSort[1] ], lastSort ] + return [ firstSort, lastSort ] +} - if (model) return [ { model: model }, sort[0], sort[1] ] - return sort +function throwIfNotValid (value: any, validator: (value: any) => boolean, fieldName = 'value') { + if (validator(value) === false) { + throw new Error(`"${value}" is not a valid ${fieldName}.`) + } } // --------------------------------------------------------------------------- export { - addMethodsToModel, getSort, - getSortOnModel + getSortOnModel, + throwIfNotValid }