summaryrefslogtreecommitdiff
path: root/app/routes/dev.js
diff options
context:
space:
mode:
authorGeo Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2024-04-17 18:32:13 +0300
committerGeo Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2024-04-17 18:32:13 +0300
commitd9364679a51ff80db8e5948ab089d749da36a6b2 (patch)
treef847a03a017be8857923aaaae9f8dcf7177b2ba9 /app/routes/dev.js
parent6248d2cf7a2214ac32628bc58248694108b4d8bf (diff)
downloadoseine-development.tar.gz
oseine-development.tar.bz2
oseine-development.zip
dockerize the appHEADmasterdevelopment
Diffstat (limited to 'app/routes/dev.js')
-rw-r--r--app/routes/dev.js103
1 files changed, 103 insertions, 0 deletions
diff --git a/app/routes/dev.js b/app/routes/dev.js
new file mode 100644
index 0000000..cd40822
--- /dev/null
+++ b/app/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.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;