return query
},
[ ScopeNames.AVAILABLE_FOR_LIST_IDS ]: (options: AvailableForListIDsOptions) => {
- const whereAnd = options.baseWhere ? options.baseWhere : []
+ const whereAnd = options.baseWhere ? [].concat(options.baseWhere) : []
const query: FindOptions = {
raw: true,
})
}
- static listUserVideosForApi (accountId: number, start: number, count: number, sort: string) {
+ static listUserVideosForApi (
+ accountId: number,
+ start: number,
+ count: number,
+ sort: string,
+ search?: string
+ ) {
function buildBaseQuery (): FindOptions {
- return {
+ let baseQuery = {
offset: start,
limit: count,
order: getVideoSort(sort),
}
]
}
+
+ if (search) {
+ baseQuery = Object.assign(baseQuery, {
+ where: {
+ name: {
+ [ Op.iLike ]: '%' + search + '%'
+ }
+ }
+ })
+ }
+
+ return baseQuery
}
const countQuery = buildBaseQuery()
const findQuery = buildBaseQuery()
- const findScopes = [
+ const findScopes: (string | ScopeOptions)[] = [
ScopeNames.WITH_SCHEDULED_UPDATE,
ScopeNames.WITH_BLACKLISTED,
ScopeNames.WITH_THUMBNAILS
'UNION ALL ' +
'SELECT "video"."id" FROM "video" LEFT JOIN "videoTag" ON "videoTag"."videoId" = "video"."id" ' +
'INNER JOIN "tag" ON "tag"."id" = "videoTag"."tagId" ' +
- 'WHERE "tag"."name" = ' + escapedSearch +
+ 'WHERE lower("tag"."name") = lower(' + escapedSearch + ')' +
')'
)
}