diff options
Diffstat (limited to 'routes/dev.js')
| -rw-r--r-- | routes/dev.js | 103 |
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; |
