Generalize store quering functions

This commit is contained in:
Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent 93c6a4dfcd
commit 9b827c5f5e
26 files changed
+1362 -321

No files matched your search

+14 -6
View File
@@ -3,6 +3,7 @@
const Router = require("koa-router");
const apiFunctions = require("./api-functions");
const Filter = require("../common/filter");
const router = new Router();
@@ -17,7 +18,7 @@ const resources = {
for (let [resource, update] of Object.entries(resources)) {
router.head(`/${resource}`, async ctx => {
let filter, limit;
if (ctx.request.query.filter) filter = ctx.request.query.filter;
if (ctx.request.query.filter) filter = new Filter(ctx.request.query.filter);
if (ctx.request.query.limit) limit = +ctx.request.query.limit;
let count = await apiFunctions.count(resource, filter, limit);
@@ -26,22 +27,29 @@ for (let [resource, update] of Object.entries(resources)) {
});
router.get(`/${resource}`, async ctx => {
let filter, limit;
if (ctx.request.query.filter) filter = ctx.request.query.filter;
let filter, limit, skip;
if (ctx.request.query.filter) filter = new Filter(ctx.request.query.filter);
if (ctx.request.query.limit) limit = +ctx.request.query.limit;
if (ctx.request.query.skip) skip = +ctx.request.query.skip;
ctx.body = await apiFunctions.query(resource, filter, limit);
ctx.body = await apiFunctions.query(
resource,
filter,
limit,
skip,
ctx.request.query.projection
);
});
router.head(`/${resource}/:id`, async (ctx, next) => {
let filter = `DeviceID.ID = "${ctx.params.id}"`;
let filter = new 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 = `DeviceID.ID = "${ctx.params.id}"`;
let filter = new Filter(`DeviceID.ID = "${ctx.params.id}"`);
let res = await apiFunctions.query(resource, filter);
if (!res.length) return next();
ctx.body = res[0];