Implement filter in devices page

This commit is contained in:
Zaid Abdulla committed 2018-12-26 00:20:47 -08:00
1 parent eda43083ec
commit ccf548081f
7 files changed
+198 -47

No files matched your search

+4 -18
View File
@@ -17,14 +17,7 @@ const resources = {
for (let [resource, update] of Object.entries(resources)) {
router.head(`/${resource}`, async ctx => {
let filter, limit;
if (ctx.request.query.filter)
if (Array.isArray(ctx.request.query.filter))
filter = ctx.request.query.query.map(q => JSON.parse(q));
else {
filter = JSON.parse(ctx.request.query.filter);
if (!Array.isArray(filter)) filter = [filter];
}
if (ctx.request.query.filter) filter = ctx.request.query.filter;
if (ctx.request.query.limit) limit = +ctx.request.query.limit;
let count = await apiFunctions.count(resource, filter, limit);
@@ -34,28 +27,21 @@ for (let [resource, update] of Object.entries(resources)) {
router.get(`/${resource}`, async ctx => {
let filter, limit;
if (ctx.request.query.filter)
if (Array.isArray(ctx.request.query.filter))
filter = ctx.request.query.query.map(q => JSON.parse(q));
else {
filter = JSON.parse(ctx.request.query.filter);
if (!Array.isArray(filter)) filter = [filter];
}
if (ctx.request.query.filter) filter = ctx.request.query.filter;
if (ctx.request.query.limit) limit = +ctx.request.query.limit;
ctx.body = await apiFunctions.query(resource, filter, limit);
});
router.head(`/${resource}/:id`, async (ctx, next) => {
let filter = { _id: ctx.params.id };
let filter = `DeviceID.ID = "${ctx.params.id}"`;
let res = await apiFunctions.query(resource, filter);
if (!res.length) return next();
ctx.body = "";
});
router.get(`/${resource}/:id`, async (ctx, next) => {
let filter = { _id: ctx.params.id };
let filter = `DeviceID.ID = "${ctx.params.id}"`;
let res = await apiFunctions.query(resource, filter);
if (!res.length) return next();
ctx.body = res[0];