* Automaticly fixable eslint issues, mostly 3 -> 2 space indentation * fix: updated plex_userid to camelcase * Linted and some consistency refactor on middleware * eslint uses ecmaversion 2020 & allow empty catch rule * Started linting source files * Fixed eslint errors & improved a lot of error handling * Set 2 eslint rules as warning temporarly
49 lines
1.1 KiB
JavaScript
49 lines
1.1 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(filterParam) {
|
|
return new Promise((resolve, reject) => {
|
|
if (filterParam === undefined) {
|
|
resolve();
|
|
}
|
|
|
|
if (filterParam && validFilterParams.includes(filterParam)) {
|
|
resolve();
|
|
} else {
|
|
reject(
|
|
new Error(`filter parameteres must be of type: ${validFilterParams}`)
|
|
);
|
|
}
|
|
});
|
|
}
|
|
|
|
module.exports = { validSort, validFilter };
|