mirror of
https://github.com/Sonny93/my-links.git
synced 2025-12-08 14:43:24 +00:00
refactor: move routes in dedicated files + improve routes management
This commit is contained in:
@@ -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'),
|
||||
]);
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
12
start/routes/app.ts
Normal 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
28
start/routes/auth.ts
Normal 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);
|
||||
31
start/routes/collection.ts
Normal file
31
start/routes/collection.ts
Normal 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
9
start/routes/favicon.ts
Normal 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
16
start/routes/link.ts
Normal 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');
|
||||
Reference in New Issue
Block a user