Generalize store quering functions
This commit is contained in:
1 parent
93c6a4dfcd
commit
9b827c5f5e
26 files changed
+1362
-321
No files matched your search
+14
-6
@@ -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];
|
||||
|
||||
Reference in new issue
Block a user