X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Futils.ts;h=88e31f22e0f6f1f92d0762d1a64f986f25c97522;hb=87a0cac618c8ed4a09408273d0f5a468530e8062;hp=b57290afff918aa54ed31ecfa4291d21eb3778a5;hpb=69c1f3c25622500e0956127a2493bba54fce97f8;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/utils.ts b/server/models/utils.ts index b57290aff..88e31f22e 100644 --- a/server/models/utils.ts +++ b/server/models/utils.ts @@ -11,8 +11,6 @@ function getSort (value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): OrderIt if (field.toLowerCase() === 'match') { // Search finalField = Sequelize.col('similarity') - } else if (field === 'videoQuotaUsed') { // Users list - finalField = Sequelize.col('videoQuotaUsed') } else { finalField = field } @@ -20,6 +18,25 @@ function getSort (value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): OrderIt return [ [ finalField, direction ], lastSort ] } +function getAdminUsersSort (value: string): OrderItem[] { + const { direction, field } = buildDirectionAndField(value) + + let finalField: string | ReturnType + + if (field === 'videoQuotaUsed') { // Users list + finalField = Sequelize.col('videoQuotaUsed') + } else { + finalField = field + } + + const nullPolicy = direction === 'ASC' + ? 'NULLS FIRST' + : 'NULLS LAST' + + // FIXME: typings + return [ [ finalField as any, direction, nullPolicy ], [ 'id', 'ASC' ] ] +} + function getPlaylistSort (value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): OrderItem[] { const { direction, field } = buildDirectionAndField(value) @@ -260,6 +277,7 @@ export { buildLocalAccountIdsIn, getSort, getCommentSort, + getAdminUsersSort, getVideoSort, getBlacklistSort, createSimilarityAttribute,