const Router = require('koa-router'); const kb = require('./pieces/kb-util.js'); const data = require('./pieces/prepare-streams'); const products = require('./data/products.json'); const bench = require('./benchmark/find.js'); // 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 */ // TEST routes //////////////////////////////////////////////////////////////////////////////// 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( // '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' }; next(); }); router.get('/test/json', (ctx, next) => { // easy test route // test anything ... ctx.body = { t: + new Date(), p: products }; next(); }); router.get('/bench/fe', (ctx, next) => { // easy test route // test anything ... // ctx.body = bench.compare(); ctx.body = bench.byFor(); next(); }); module.exports = router;