Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
94.59% covered (success)
94.59%
35 / 37
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3/** @var \Laravel\Lumen\Routing\Router $router */
4
5/*
6|--------------------------------------------------------------------------
7| Application Routes
8|--------------------------------------------------------------------------
9|
10| Here is where you can register all of the routes for an application.
11| It is a breeze. Simply tell Lumen the URIs it should respond to
12| and give it the Closure to call when that URI is requested.
13|
14*/
15
16$router->get('/', function () use ($router) {
17    return $router->app->version();
18});
19
20$router->get('/swagger', function () use ($router) {
21    return redirect('/public/swagger');
22});
23
24$router->group(['prefix' => 'api'], function ($request) use ($router) {
25    $router->post('users', 'UserController@store');
26
27    $router->group(['prefix' => 'auth'], function ($request) use ($router) {
28        $router->post('login/jwt', 'AuthController@loginJWT');
29    });
30
31    $router->group(['middleware' => 'auth'], function ($request) use ($router) {
32        $router->group(['prefix' => 'users'], function () use ($router) {
33            $router->group(['middleware' => 'hasRole:COLABORADOR,ADMIN'], function ($request) use ($router) {
34                $router->get('', 'UserController@index');
35                $router->get('{id}', 'UserController@show');
36                $router->put('{id}', 'UserController@update');
37                $router->delete('{id}', 'UserController@destroy');
38                $router->post('{id}/activate', 'UserController@activate');
39            });
40        });
41
42        $router->group(['prefix' => 'loans'], function () use ($router) {
43            $router->group(['middleware' => 'hasRole:COLABORADOR,ADMIN'], function ($request) use ($router) {
44                $router->get('', 'LoanController@index');
45                $router->get('{id}', 'LoanController@show');
46                $router->post('', 'LoanController@store');
47                $router->patch('{id}/devolution', 'LoanController@devolution');
48            });
49        });
50
51        $router->group(['prefix' => 'authors'], function () use ($router) {
52            $router->get('', 'AuthorController@index');
53            $router->get('{id}', 'AuthorController@show');
54            $router->group(['middleware' => 'hasRole:COLABORADOR,ADMIN'], function ($request) use ($router) {
55                $router->post('', 'AuthorController@store');
56                $router->put('{id}', 'AuthorController@update');
57                $router->delete('{id}', 'AuthorController@destroy');
58            });
59        });
60
61        $router->group(['prefix' => 'books'], function () use ($router) {
62            $router->get('', 'BookController@index');
63            $router->get('{id}', 'BookController@show');
64            $router->group(['middleware' => 'hasRole:COLABORADOR,ADMIN'], function ($request) use ($router) {
65                $router->post('', 'BookController@store');
66                $router->put('{id}', 'BookController@update');
67                $router->delete('{id}', 'BookController@destroy');
68                $router->post('{id}/activate', 'BookController@activate');
69            });
70        });
71
72    });
73});