Merge pull request #11 from directus/single

Add single query param
This commit is contained in:
Rijk van Zanten
2020-06-17 17:36:38 -04:00
committed by GitHub
3 changed files with 21 additions and 2 deletions

View File

@@ -31,6 +31,10 @@ const sanitizeQuery: RequestHandler = (req, res, next) => {
query.offset = sanitizeOffset(req.query.offset);
}
if (req.query.single) {
query.single = sanitizeSingle(req.query.single);
}
res.locals.query = query;
return next();
};
@@ -79,3 +83,7 @@ function sanitizeLimit(rawLimit: any) {
function sanitizeOffset(rawOffset: any) {
return Number(rawOffset);
}
function sanitizeSingle(rawSingle: any) {
return true;
}

View File

@@ -36,7 +36,7 @@ export const readItems = async (collection: string, query: Query = {}) => {
});
}
if (query.limit) {
if (query.limit && !query.offset) {
dbQuery.limit(query.limit);
}
@@ -44,7 +44,17 @@ export const readItems = async (collection: string, query: Query = {}) => {
dbQuery.offset(query.offset);
}
return await dbQuery;
if (query.single) {
dbQuery.limit(1);
}
const records = await dbQuery;
if (query.single) {
return records[0];
}
return records;
};
export const readItem = async (collection: string, pk: number | string, query: Query = {}) => {

View File

@@ -5,6 +5,7 @@ export type Query = {
limit?: number;
offset?: number;
page?: number;
single?: boolean;
};
export type Sort = {