const Router = require('koa-router'); const kb = require('./pieces/kb-util.js'); const data = require('./pieces/prepare-streams'); const prod = require('./data/j.json'); // Prefix all routes with: /items const router = new Router({ //// prefix: '/items' }); /* 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'}, ]; // Routes 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 // Routes router.get('/search', (ctx, next) => { ctx.body = []; next(); }); router.get('/search/:title', (ctx, next) => { let words = kb.keyboardize(kb.clean(ctx.params.title)).split(' '); ctx.body = { params: ctx.params, results: words }; next(); }); /** other routes * + /suggest/ * + /prepare (products, keywords, linked-terms etc) * + /stats */ router.get('/test', (ctx, next) => { // easy test route // test anything ... let result = { success: true, data: [1, 2, 3] }; ctx.body = result; next(); }); router.get('/test/do-data', (ctx, next) => { // easy test route // test anything ... data.create(); ctx.body = { success: true, operation: 'create new data' }; next(); }); router.get('/test/json', (ctx, next) => { // easy test route // test anything ... ctx.body = { t: + new Date(), p: prod }; next(); }); module.exports = router;