34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
// TODO : test title and date are valid matches to columns in the database
|
|
const validSortParams = ['title', 'date']
|
|
const validSortDirs = ['asc', 'desc']
|
|
const validFilterParams = ['movie', 'show', 'seeding', 'downloading', 'paused', 'finished', 'downloaded']
|
|
|
|
function validSort(by, direction) {
|
|
return new Promise((resolve, reject) => {
|
|
if (by === undefined) {
|
|
resolve()
|
|
}
|
|
|
|
if (validSortParams.includes(by) && validSortDirs.includes(direction)) {
|
|
resolve()
|
|
} else {
|
|
reject(new Error(`invalid sort parameter, must be of: ${validSortParams} with optional sort directions: ${validSortDirs} appended with ':'`))
|
|
}
|
|
});
|
|
}
|
|
|
|
function validFilter(filter_param) {
|
|
return new Promise((resolve, reject) => {
|
|
if (filter_param === undefined) {
|
|
resolve()
|
|
}
|
|
|
|
if (filter_param && validFilterParams.includes(filter_param)) {
|
|
resolve()
|
|
} else {
|
|
reject(new Error(`filter parameteres must be of type: ${validFilterParams}`))
|
|
}
|
|
});
|
|
}
|
|
|
|
module.exports = { validSort, validFilter } |