1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-21 09:38:01 +02:00
joplin/packages/lib/services/rest/utils/requestPaginationOptions.ts

26 lines
831 B
TypeScript
Raw Normal View History

2020-11-05 18:58:23 +02:00
import { Pagination, PaginationOrder, PaginationOrderDir } from '../../../models/utils/types';
import { Request } from '../Api';
import { ErrorBadRequest } from './errors';
function requestPaginationOrder(request:Request):PaginationOrder[] {
const orderBy:string = request.query.order_by ? request.query.order_by : 'updated_time';
const orderDir:PaginationOrderDir = request.query.order_dir ? request.query.order_dir : PaginationOrderDir.ASC;
return [{
by: orderBy,
dir: orderDir,
caseInsensitive: true,
}];
}
export default function(request:Request):Pagination {
const limit = request.query.limit ? request.query.limit : 100;
if (limit < 0 || limit > 100) throw new ErrorBadRequest(`Limit out of bond: ${limit}`);
const order:PaginationOrder[] = requestPaginationOrder(request);
return {
limit,
order,
};
}