/*
 * Index Routes
 * -------------------------------------------------------------
 * This is a sample routes file. Routes and their handlers should be
 * defined here, but no logic should occur.
 */
const index = {
  /*
   * Define the prefix applied to each of these routes.
   * For example, if prefix is '/auth':
   *      '/' becomes '/auth'
   *      '/login' becomes '/auth/login'
   */
  prefix: '/',

  /*
   * Define middleware that should be applied to all
   * routes defined in this file. Middleware should be
   * included using its non-prefixed canonical name.
   *
   * You can pass arguments along to a middleware by
   * specifying it as an array where the first element
   * is the canonical name of the middleware and the
   * second element is the argument passed to the
   * handler's exec() method.
   */
  middleware: [
    // 'MiddlewareName', // Or without arguments
  ],

  /*
   * Define GET routes.
   * These routes are registered as GET methods.
   * Handlers for these routes should be specified as
   * an array of canonical references to controller methods
   * or middleware that are applied in order.
   */
  get: {
    // handlers should be a list of either controller:: or middleware:: references
    // e.g. middleware::HomeLogger
    // e.g. controller::Home.welcome
    '/': ['controller::Home.welcome'],

    '/stat': ['controller::Home.get_stat'],

    // Placeholder for auth dashboard. You'd replace this with
    // your own route protected by 'middleware::auth:UserOnly'
    '/dash': ['middleware::auth:UserOnly', 'controller::Home.toApp'],
    '/start': ['middleware::auth:UserOnly', 'controller::Home.toApp'],
    '/login': ['middleware::auth:GuestOnly', 'controller::Home.get_login'],
    '/test-json': ['controller::Export.json_export'],
    '/test-markdown': ['controller::Export.markdown_export'],
    '/test-html': ['controller::Export.html_export']
  },

  /*
   * Define POST routes.
   * These routes are registered as POST methods.
   * Handlers for these routes should be specified as
   * an array of canonical references to controller methods
   * or middleware that are applied in order.
   */
  post: {
    '/api/v1/session/resume/:token': [
        'middleware::auth:GuestOnly', 'controller::api:v1:Session.resume',
    ],
  }
};

module.exports = exports = index;
