const query = {
offset: start,
limit: count,
- order: [ getSort(sort) ]
+ order: getSort(sort),
}
return AccountModel.findAndCountAll(query)
const query = {
offset: start,
limit: count,
- order: [ getSort(sort) ]
+ order: getSort(sort),
}
return UserModel.findAndCountAll(query)
distinct: true,
offset: start,
limit: count,
- order: [ getSort(sort) ],
+ order: getSort(sort),
include: [
{
model: ActorModel,
distinct: true,
offset: start,
limit: count,
- order: [ getSort(sort) ],
+ order: getSort(sort),
include: [
{
model: ActorModel,
-// 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'
field = value
}
- return [ field, direction ]
+ return [ [ field, direction ], lastSort ]
}
-function getSortOnModel (model: any, value: string) {
- let sort = getSort(value)
+function getSortOnModel (model: any, value: string, lastSort: string[] = [ 'id', 'ASC' ]) {
+ let [ firstSort ] = getSort(value)
- if (model) return [ model, sort[0], sort[1] ]
- return sort
+ if (model) return [ [ model, firstSort[0], firstSort[1] ], lastSort ]
+ return [ firstSort, lastSort ]
}
function throwIfNotValid (value: any, validator: (value: any) => boolean, fieldName = 'value') {
const query = {
offset: start,
limit: count,
- order: [ getSort(sort) ],
+ order: getSort(sort),
include: [
{
model: AccountModel,
const query = {
offset: start,
limit: count,
- order: [ getSortOnModel(sort.sortModel, sort.sortValue) ],
+ order: getSortOnModel(sort.sortModel, sort.sortValue),
include: [ { model: VideoModel } ]
}
const query = {
offset: start,
limit: count,
- order: [ getSort(sort) ]
+ order: getSort(sort)
}
return VideoChannelModel
static listByAccount (accountId: number) {
const query = {
- order: [ getSort('createdAt') ],
+ order: getSort('createdAt'),
include: [
{
model: AccountModel,
const query = {
offset: start,
limit: count,
- order: [ getSort(sort) ],
+ order: getSort(sort),
where: {
videoId,
inReplyToCommentId: null
distinct: true,
offset: start,
limit: count,
- order: [ getSort('createdAt'), [ 'Tags', 'name', 'ASC' ] ],
+ order: getSort('createdAt', [ 'Tags', 'name', 'ASC' ]),
where: {
id: {
[Sequelize.Op.in]: Sequelize.literal('(' + rawQuery + ')')
const query = {
offset: start,
limit: count,
- order: [ getSort(sort) ],
+ order: getSort(sort),
include: [
{
model: VideoChannelModel,
const query = {
offset: start,
limit: count,
- order: [ getSort(sort) ]
+ order: getSort(sort),
}
const serverActor = await getServerActor()
const query: IFindOptions<VideoModel> = {
offset: start,
limit: count,
- order: [ getSort(sort) ],
+ order: getSort(sort),
where: {
name: {
[Sequelize.Op.iLike]: '%' + value + '%'