refactor: move routes in dedicated files + improve routes management

This commit is contained in:
Sonny
2024-05-16 17:58:00 +02:00
committed by Sonny
parent 6b5aba6f84
commit 19b96650e9
14 changed files with 163 additions and 39 deletions

View File

@@ -29,6 +29,7 @@ server.use([
() => import('@adonisjs/cors/cors_middleware'),
() => import('@adonisjs/vite/vite_middleware'),
() => import('@adonisjs/inertia/inertia_middleware'),
() => import('@izzyjs/route/izzy_middleware'),
]);
/**

View File

@@ -1,36 +1,5 @@
import PATHS from '#constants/paths';
import { middleware } from '#start/kernel';
import router from '@adonisjs/core/services/router';
const LinksController = () => import('#controllers/links_controller');
const CollectionsController = () =>
import('#controllers/collections_controller');
const UsersController = () => import('#controllers/users_controller');
const AppsController = () => import('#controllers/apps_controller');
const FaviconsController = () => import('#controllers/favicons_controller');
router.get(PATHS.HOME, [AppsController, 'index']);
router.post('/user/theme', [AppsController, 'updateUserTheme']);
router.get(PATHS.AUTH.LOGIN, [UsersController, 'login']);
router.get(PATHS.AUTH.GOOGLE, [UsersController, 'google']);
router.get('/auth/callback', [UsersController, 'callbackAuth']);
router.get('/favicon', [FaviconsController, 'index']);
router
.group(() => {
router.get(PATHS.AUTH.LOGOUT, [UsersController, 'logout']);
router.get(PATHS.DASHBOARD, [CollectionsController, 'index']);
router.get(PATHS.COLLECTION.CREATE, [
CollectionsController,
'showCreatePage',
]);
router.post('/collections', [CollectionsController, 'store']);
router.get(PATHS.COLLECTION.EDIT, [CollectionsController, 'showEditPage']);
router.put('/collections/:id', [CollectionsController, 'update']);
router.get(PATHS.LINK.CREATE, [LinksController, 'showCreatePage']);
router.post('/links', [LinksController, 'store']);
})
.middleware([middleware.auth()]);
import './routes/app.js';
import './routes/auth.js';
import './routes/collection.js';
import './routes/favicon.js';
import './routes/link.js';

12
start/routes/app.ts Normal file
View File

@@ -0,0 +1,12 @@
import router from '@adonisjs/core/services/router';
const AppsController = () => import('#controllers/apps_controller');
/**
* All routes for both logged and guest users
*/
router.group(() => {
router.get('/', [AppsController, 'index']).as('home');
router
.post('/user/theme', [AppsController, 'updateUserTheme'])
.as('user.theme');
});

28
start/routes/auth.ts Normal file
View File

@@ -0,0 +1,28 @@
import { middleware } from '#start/kernel';
import router from '@adonisjs/core/services/router';
const UsersController = () => import('#controllers/users_controller');
const ROUTES_PREFIX = '/auth';
/**
* Auth routes for unauthicated users
*/
router
.group(() => {
router.get('/login', [UsersController, 'login']).as('auth.login');
router.get('/google', [UsersController, 'google']).as('auth.google');
router
.get('/callback', [UsersController, 'callbackAuth'])
.as('auth.callback');
})
.prefix(ROUTES_PREFIX);
/**
* Routes for authenticated users
*/
router
.group(() => {
router.get('/logout', [UsersController, 'logout']).as('auth.logout');
})
.middleware([middleware.auth()])
.prefix(ROUTES_PREFIX);

View File

@@ -0,0 +1,31 @@
import { middleware } from '#start/kernel';
import router from '@adonisjs/core/services/router';
const CollectionsController = () =>
import('#controllers/collections_controller');
/**
* Routes for authenticated users
*/
router
.group(() => {
router.get('/dashboard', [CollectionsController, 'index']).as('dashboard');
router
.group(() => {
router
.get('/create', [CollectionsController, 'showCreatePage'])
.as('collection.create-form');
router
.post('/', [CollectionsController, 'store'])
.as('collection.create');
router
.get('/edit', [CollectionsController, 'showEditPage'])
.as('collection.edit-form');
router
.put('/:id', [CollectionsController, 'update'])
.as('collection.edit');
})
.prefix('/collections');
})
.middleware([middleware.auth()]);

9
start/routes/favicon.ts Normal file
View File

@@ -0,0 +1,9 @@
import router from '@adonisjs/core/services/router';
const FaviconsController = () => import('#controllers/favicons_controller');
/**
* Favicon routes
*/
router.group(() => {
router.get('/favicon', [FaviconsController, 'index']).as('favicon');
});

16
start/routes/link.ts Normal file
View File

@@ -0,0 +1,16 @@
import { middleware } from '#start/kernel';
import router from '@adonisjs/core/services/router';
const LinksController = () => import('#controllers/links_controller');
/**
* Routes for authenticated users
*/
router
.group(() => {
router
.get('/create', [LinksController, 'showCreatePage'])
.as('link.create-form');
router.post('/', [LinksController, 'store']).as('link.create');
})
.middleware([middleware.auth()])
.prefix('/links');