registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true ])); /** * Here, we are connecting '/' (base path) to a controller called 'Pages', * its action called 'display', and we pass a param to select the view file * to use (in this case, src/Template/Pages/home.ctp)... */ // $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); $routes->connect('/', ['controller' => 'Main', 'action' => 'history']); $routes->scope('/web', function ($routes) { $routes->applyMiddleware('csrf'); $routes->connect('/', ['controller' => 'Main', 'action' => 'history']); $routes->connect('/history', ['controller' => 'Main', 'action' => 'history']); $routes->connect('/history/:meter_id', ['controller' => 'Main', 'action' => 'historyMeter'] ,['pass' =>['meter_id']]); $routes->connect('/history/daily', ['controller' => 'Main', 'action' => 'historyDaily']); $routes->connect('/history/daily/:meter_id', ['controller' => 'Main', 'action' => 'historyMeterDaily'] ,['pass' =>['meter_id']]); $routes->connect('/history/monthly', ['controller' => 'Main', 'action' => 'historyMonthly']); $routes->connect('/history/monthly/:meter_id', ['controller' => 'Main', 'action' => 'historyMeterMonthly'] ,['pass' =>['meter_id']]); $routes->connect('/meter', ['controller' => 'Main', 'action' => 'meter']); $routes->connect('/meter/:meter_id', ['controller' => 'Main', 'action' => 'meterID'] ,['pass' =>['meter_id']]); $routes->connect('/block/:block_id', ['controller' => 'Main', 'action' => 'blockID'] ,['pass' =>['block_id']]); $routes->connect('/history/price', ['controller' => 'Main', 'action' => 'priceHistory']); $routes->connect('/history/price/:meter_id', ['controller' => 'Main', 'action' => 'priceHistoryMeter'],['pass' =>['meter_id']]); $routes->connect('/payment', ['controller' => 'Main', 'action' => 'payment']); $routes->connect('/setprice', ['controller' => 'Main', 'action' => 'setPrice']); $routes->connect('/transfer', ['controller' => 'Main', 'action' => 'transfer']); $routes->connect('/profile', ['controller' => 'Main', 'action' => 'profile']); }); $routes->scope('/xhr/', function ($routes) { $routes->applyMiddleware('csrf'); $routes->connect('setprice', ['controller' => 'Xhr', 'action' => 'setPrice']); $routes->connect('transfer', ['controller' => 'Xhr', 'action' => 'transfer']); $routes->connect('history', ['controller' => 'Xhr', 'action' => 'history']); $routes->connect('historyTransfer', ['controller' => 'Xhr', 'action' => 'historyTransfer']); $routes->connect('payment', ['controller' => 'Xhr', 'action' => 'payment']); $routes->connect('price/history', ['controller' => 'Xhr', 'action' => 'priceHistory']); $routes->connect('block', ['controller' => 'Xhr', 'action' => 'blocks']); $routes->connect('balances', ['controller' => 'Xhr', 'action' => 'balances']); $routes->connect('charts/payments/:meter_name', ['controller' => 'Xhr', 'action' => 'chartsPayments'] ,['pass' =>['meter_name']]); }); $routes->scope('/api/', function ($routes) { $routes->connect('transfer', ['controller' => 'Api', 'action' => 'transfer']); $routes->connect('history', ['controller' => 'Api', 'action' => 'history']); $routes->connect('payment', ['controller' => 'Api', 'action' => 'payment']); $routes->connect('price', ['controller' => 'Api', 'action' => 'price']); $routes->connect('block', ['controller' => 'Api', 'action' => 'blocks']); $routes->connect('/block/:block_id', ['controller' => 'Api', 'action' => 'blockID'] ,['pass' =>['block_id']]); $routes->connect('meter', ['controller' => 'Api', 'action' => 'meter']); $routes->connect('meter/:meter_id', ['controller' => 'Api', 'action' => 'meterID'] ,['pass' =>['meter_id']]); $routes->connect('balances', ['controller' => 'Api', 'action' => 'balances']); }); /** * ...and connect the rest of 'Pages' controller's URLs. */ // $routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']); /** * Connect catchall routes for all controllers. * * Using the argument `DashedRoute`, the `fallbacks` method is a shortcut for * * ``` * $routes->connect('/:controller', ['action' => 'index'], ['routeClass' => 'DashedRoute']); * $routes->connect('/:controller/:action/*', [], ['routeClass' => 'DashedRoute']); * ``` * * Any route class can be used with this method, such as: * - DashedRoute * - InflectedRoute * - Route * - Or your own route class * * You can remove these routes once you've connected the * routes you want in your application. */ $routes->fallbacks(DashedRoute::class); }); /** * If you need a different set of middleware or none at all, * open new scope and define routes there. * * ``` * Router::scope('/api', function (RouteBuilder $routes) { * // No $routes->applyMiddleware() here. * // Connect API actions here. * }); * ``` */