Files
seasonedShows/seasoned_api/src/request/utils.js

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 }