summaryrefslogtreecommitdiff
path: root/routes/dev.js
diff options
context:
space:
mode:
Diffstat (limited to 'routes/dev.js')
-rw-r--r--routes/dev.js103
1 files changed, 103 insertions, 0 deletions
diff --git a/routes/dev.js b/routes/dev.js
new file mode 100644
index 0000000..3f142d0
--- /dev/null
+++ b/routes/dev.js
@@ -0,0 +1,103 @@
+/**
+ * defines routes
+ * exports router
+ */
+
+const Router = require('koa-router');
+const urler = require('../utils/url-util.js');
+
+const data = require('../pieces/prepare-streams.js');
+
+const bench = require('../benchmark/find.js');
+const matchStr = require('../benchmark/match-str.js');
+
+
+// Prefix all routes with: /items
+const router = new Router();
+
+
+
+// Routes
+
+/* simple route example
+
+ let items = [
+ { id: 100, iname: 'Quartz Analog Wrist Watch', price: 'US $4.99'},
+ { id: 101, iname: 'Leather Peep Pump Heels', price: 'US $33.56'},
+ { id: 102, iname: 'Apple iPod', price: 'US $219.99'},
+ { id: 103, iname: 'Prince Phantom 97P Tennnis Racket', price: 'US $50.00'},
+ ];
+
+ router.get('/items', (ctx, next) => {
+ ctx.body = items;
+ next();
+ });
+
+ router.get('/items/:id', (ctx, next) => {
+ let getCurrentItem = items.filter(function(item) {
+ if (item.id == ctx.params.id) {
+ return true;
+ }
+ });
+ if (getCurrentItem.length) {
+ ctx.body = getCurrentItem[0];
+ } else {
+ ctx.response.status = 404;
+ ctx.body = 'Item Not Found';
+ }
+ next();
+ });
+*/
+
+
+// NOTE: set timeout per route (how-to)
+// https://stackoverflow.com/questions/66634123/how-to-add-individual-timeout-value-per-specific-route-using-node-js
+
+
+// TEST routes
+////////////////////////////////////////////////////////////////////////////////
+
+router.get('/test', (ctx) => { // easy test route
+ // test anything ...
+ ctx.body = { params: urler.struct(ctx.request, ctx.url), ctx: ctx }
+});
+
+router.get('/test/do-data', (ctx) => { // easy test route
+ // test anything ...
+ // data.create(
+ // 'products',
+ // 'https://storage.googleapis.com/pythia-files/uploads/json/emarket-products.json'
+ // );
+ data.load_products(
+ 'https://storage.googleapis.com/pythia-files/uploads/json/emarket-products.json'
+ );
+ ctx.body = { success: true, operation: 'create new data' };
+});
+
+// benchmark routes;
+// shall be removed from production
+////////////////////////////////////////////////////////////////////////////////
+
+/// router.get('/test/json', (ctx, next) => { // easy test route
+/// // test anything ...
+/// ctx.body = { t: + new Date(), p: products };
+/// next();
+/// });
+
+router.get('/bench/find', (ctx) => { // easy test route
+ // test anything ...
+ ctx.body = bench.compare();
+ // next();
+});
+
+router.get('/bench/match/:title', (ctx) => { // easy test route
+ // test anything ... [ query = 'solokata' ]
+ // ctx.body = bench.compare();
+ ctx.body = matchStr.run(ctx.params.title);
+ // next();
+});
+
+
+// export routes
+
+module.exports = router;