summaryrefslogtreecommitdiff
path: root/routes/dev.js
blob: cd40822be3c2b95e7d36c1af552c58911951232e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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;