Files
myDrive/backend/utils/createQuery.ts
T

54 lines
1.2 KiB
TypeScript

export interface QueryInterface {
"metadata.owner": string,
"metadata.parent"?: string,
filename?: string | RegExp | {
$lt?: string,
$gt?: string,
},
uploadDate?: {
$lt?: Date,
$gt?: Date,
},
}
const createQuery = (owner: string, parent: string, sortBy: string, startAt: number, startAtDate: number, searchQuery: string | RegExp, startAtName: string) => {
let query: QueryInterface = {"metadata.owner": owner}
if (searchQuery !== "") {
searchQuery = new RegExp(searchQuery, 'i')
query = {...query, filename: searchQuery}
} else {
query = {...query, "metadata.parent": parent}
}
if (startAt) {
if (sortBy === "date_desc" || sortBy === "DEFAULT") {
query = {...query, "uploadDate": {$lt: new Date(startAtDate)}}
} else if (sortBy === "date_asc") {
query = {...query, "uploadDate": {$gt: new Date(startAtDate)}}
} else if (sortBy === "alp_desc") {
query = {...query, "filename": {$lt: startAtName}}
} else {
query = {...query, "filename": {$gt: startAtName}}
}
}
return query;
}
export default createQuery;