diff options
author | Chocobozzz <me@florianbigard.com> | 2019-09-04 16:23:37 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2019-09-04 16:23:37 +0200 |
commit | 951532924c1b3fd547cbf45f0c9cf9734203d6b4 (patch) | |
tree | 1fa1ef653a9591932a057ea1317a2ea129b96665 | |
parent | 5eb9bde8aa50951c7896d5278d0788dda541c475 (diff) | |
download | PeerTube-951532924c1b3fd547cbf45f0c9cf9734203d6b4.tar.gz PeerTube-951532924c1b3fd547cbf45f0c9cf9734203d6b4.tar.zst PeerTube-951532924c1b3fd547cbf45f0c9cf9734203d6b4.zip |
Fix blacklist sort
-rw-r--r-- | server/models/utils.ts | 10 | ||||
-rw-r--r-- | server/models/video/video-blacklist.ts | 6 |
2 files changed, 8 insertions, 8 deletions
diff --git a/server/models/utils.ts b/server/models/utils.ts index 24890f961..e7e6ddde1 100644 --- a/server/models/utils.ts +++ b/server/models/utils.ts | |||
@@ -1,9 +1,9 @@ | |||
1 | import { Model, Sequelize } from 'sequelize-typescript' | 1 | import { Model, Sequelize } from 'sequelize-typescript' |
2 | import * as validator from 'validator' | 2 | import * as validator from 'validator' |
3 | import { Col } from 'sequelize/types/lib/utils' | 3 | import { Col } from 'sequelize/types/lib/utils' |
4 | import { OrderItem, literal } from 'sequelize' | 4 | import { col, literal, OrderItem } from 'sequelize' |
5 | 5 | ||
6 | type SortType = { sortModel: any, sortValue: string } | 6 | type SortType = { sortModel: string, sortValue: string } |
7 | 7 | ||
8 | // Translate for example "-name" to [ [ 'name', 'DESC' ], [ 'id', 'ASC' ] ] | 8 | // Translate for example "-name" to [ [ 'name', 'DESC' ], [ 'id', 'ASC' ] ] |
9 | function getSort (value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): OrderItem[] { | 9 | function getSort (value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): OrderItem[] { |
@@ -51,10 +51,10 @@ function getVideoSort (value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): Or | |||
51 | return [ firstSort, lastSort ] | 51 | return [ firstSort, lastSort ] |
52 | } | 52 | } |
53 | 53 | ||
54 | function getSortOnModel (model: any, value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): OrderItem[] { | 54 | function getBlacklistSort (model: any, value: string, lastSort: OrderItem = [ 'id', 'ASC' ]): OrderItem[] { |
55 | const [ firstSort ] = getSort(value) | 55 | const [ firstSort ] = getSort(value) |
56 | 56 | ||
57 | if (model) return [ [ model, firstSort[0], firstSort[1] ], lastSort ] | 57 | if (model) return [ [ literal(`"${model}.${firstSort[ 0 ]}" ${firstSort[ 1 ]}`) ], lastSort ] as any[] // FIXME: typings |
58 | return [ firstSort, lastSort ] | 58 | return [ firstSort, lastSort ] |
59 | } | 59 | } |
60 | 60 | ||
@@ -155,7 +155,7 @@ export { | |||
155 | buildLocalAccountIdsIn, | 155 | buildLocalAccountIdsIn, |
156 | getSort, | 156 | getSort, |
157 | getVideoSort, | 157 | getVideoSort, |
158 | getSortOnModel, | 158 | getBlacklistSort, |
159 | createSimilarityAttribute, | 159 | createSimilarityAttribute, |
160 | throwIfNotValid, | 160 | throwIfNotValid, |
161 | buildServerIdsFollowedBy, | 161 | buildServerIdsFollowedBy, |
diff --git a/server/models/video/video-blacklist.ts b/server/models/video/video-blacklist.ts index 18a1b8b4b..cdb725e7a 100644 --- a/server/models/video/video-blacklist.ts +++ b/server/models/video/video-blacklist.ts | |||
@@ -1,11 +1,11 @@ | |||
1 | import { AllowNull, BelongsTo, Column, CreatedAt, DataType, Default, ForeignKey, Is, Model, Table, UpdatedAt } from 'sequelize-typescript' | 1 | import { AllowNull, BelongsTo, Column, CreatedAt, DataType, Default, ForeignKey, Is, Model, Table, UpdatedAt } from 'sequelize-typescript' |
2 | import { getSortOnModel, SortType, throwIfNotValid } from '../utils' | 2 | import { getBlacklistSort, getSort, SortType, throwIfNotValid } from '../utils' |
3 | import { ScopeNames as VideoModelScopeNames, VideoModel } from './video' | 3 | import { ScopeNames as VideoModelScopeNames, VideoModel } from './video' |
4 | import { ScopeNames as VideoChannelScopeNames, SummaryOptions, VideoChannelModel } from './video-channel' | 4 | import { ScopeNames as VideoChannelScopeNames, SummaryOptions, VideoChannelModel } from './video-channel' |
5 | import { isVideoBlacklistReasonValid, isVideoBlacklistTypeValid } from '../../helpers/custom-validators/video-blacklist' | 5 | import { isVideoBlacklistReasonValid, isVideoBlacklistTypeValid } from '../../helpers/custom-validators/video-blacklist' |
6 | import { VideoBlacklist, VideoBlacklistType } from '../../../shared/models/videos' | 6 | import { VideoBlacklist, VideoBlacklistType } from '../../../shared/models/videos' |
7 | import { CONSTRAINTS_FIELDS } from '../../initializers/constants' | 7 | import { CONSTRAINTS_FIELDS } from '../../initializers/constants' |
8 | import { FindOptions } from 'sequelize' | 8 | import { FindOptions, literal } from 'sequelize' |
9 | import { ThumbnailModel } from './thumbnail' | 9 | import { ThumbnailModel } from './thumbnail' |
10 | 10 | ||
11 | @Table({ | 11 | @Table({ |
@@ -57,7 +57,7 @@ export class VideoBlacklistModel extends Model<VideoBlacklistModel> { | |||
57 | return { | 57 | return { |
58 | offset: start, | 58 | offset: start, |
59 | limit: count, | 59 | limit: count, |
60 | order: getSortOnModel(sort.sortModel, sort.sortValue) | 60 | order: getBlacklistSort(sort.sortModel, sort.sortValue) |
61 | } | 61 | } |
62 | } | 62 | } |
63 | 63 | ||