<?php

use kernel\App;
use kernel\CgRouteCollector;
use Phroute\Phroute\RouteCollector;

App::$collector->filter('bearer', [\kernel\modules\secure\middlewares\BearerAuthMiddleware::class, "handler"]);

App::$collector->group(["prefix" => "admin"], function (RouteCollector $router){
    App::$collector->group(["before" => "auth"], function (RouteCollector $router) {
        App::$collector->group(["prefix" => "post"], function (RouteCollector $router) {
            App::$collector->get('/', [\kernel\modules\post\controllers\PostController::class, 'actionIndex']);
            App::$collector->get('/page/{page_number}', [\kernel\modules\post\controllers\PostController::class, 'actionIndex']);
            App::$collector->get('/create', [\kernel\modules\post\controllers\PostController::class, 'actionCreate']);
            App::$collector->post("/", [\kernel\modules\post\controllers\PostController::class, 'actionAdd']);
            App::$collector->get('/view/{id}', [\kernel\modules\post\controllers\PostController::class, 'actionView']);
            App::$collector->any('/update/{id}', [\kernel\modules\post\controllers\PostController::class, 'actionUpdate']);
            App::$collector->any("/edit/{id}", [\kernel\modules\post\controllers\PostController::class, 'actionEdit']);
            App::$collector->get('/delete/{id}', [\kernel\modules\post\controllers\PostController::class, 'actionDelete']);
        });
    });
});

App::$collector->group(["prefix" => "api"], function (CgRouteCollector $router){
    App::$collector->group(['before' => 'bearer'], function (CgRouteCollector $router){
        $router->rest("post", [\kernel\modules\post\controllers\PostRestController::class]);
    });
});