mirror of
https://github.com/Sonny93/my-links.git
synced 2025-12-09 07:03:25 +00:00
refactor: split backend by context instead of type 'controllers/models/...'
This commit is contained in:
@@ -15,7 +15,7 @@ import server from '@adonisjs/core/services/server';
|
||||
* The error handler is used to convert an exception
|
||||
* to a HTTP response.
|
||||
*/
|
||||
server.errorHandler(() => import('#exceptions/handler'));
|
||||
server.errorHandler(() => import('#core/exceptions/handler'));
|
||||
|
||||
/**
|
||||
* The server middleware stack runs middleware on all the HTTP
|
||||
@@ -23,9 +23,9 @@ server.errorHandler(() => import('#exceptions/handler'));
|
||||
* the request URL.
|
||||
*/
|
||||
server.use([
|
||||
() => import('#middleware/container_bindings_middleware'),
|
||||
() => import('#core/middlewares/container_bindings_middleware'),
|
||||
() => import('@adonisjs/static/static_middleware'),
|
||||
() => import('#middleware/log_request'),
|
||||
() => import('#core/middlewares/log_request'),
|
||||
() => import('@adonisjs/cors/cors_middleware'),
|
||||
() => import('@adonisjs/vite/vite_middleware'),
|
||||
() => import('@adonisjs/inertia/inertia_middleware'),
|
||||
@@ -41,8 +41,8 @@ router.use([
|
||||
() => import('@adonisjs/session/session_middleware'),
|
||||
() => import('@adonisjs/shield/shield_middleware'),
|
||||
() => import('@adonisjs/auth/initialize_auth_middleware'),
|
||||
() => import('#middleware/silent_auth_middleware'),
|
||||
() => import('#middleware/update_user_last_seen_middleware'),
|
||||
() => import('#auth/middlewares/silent_auth_middleware'),
|
||||
() => import('#user/middlewares/update_user_last_seen_middleware'),
|
||||
]);
|
||||
|
||||
/**
|
||||
@@ -50,7 +50,7 @@ router.use([
|
||||
* the routes or the routes group.
|
||||
*/
|
||||
export const middleware = router.named({
|
||||
admin: () => import('#middleware/admin_middleware'),
|
||||
guest: () => import('#middleware/guest_middleware'),
|
||||
auth: () => import('#middleware/auth_middleware'),
|
||||
admin: () => import('#admin/middlewares/is_admin_middleware'),
|
||||
guest: () => import('#auth/middlewares/guest_middleware'),
|
||||
auth: () => import('#auth/middlewares/auth_middleware'),
|
||||
});
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import './routes/admin.js';
|
||||
import './routes/app.js';
|
||||
import './routes/auth.js';
|
||||
import './routes/collection.js';
|
||||
import './routes/favicon.js';
|
||||
import './routes/link.js';
|
||||
import './routes/search.js';
|
||||
import './routes/shared_collection.js';
|
||||
import '#admin/routes/routes';
|
||||
import '#auth/routes/routes';
|
||||
import '#collections/routes/routes';
|
||||
import '#favicons/routes/routes';
|
||||
import '#home/routes/routes';
|
||||
import '#legal/routes/routes';
|
||||
import '#links/routes/routes';
|
||||
import '#search/routes/routes';
|
||||
import '#shared_collections/routes/routes';
|
||||
import '#user/routes/routes';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
import { middleware } from '#start/kernel';
|
||||
import router from '@adonisjs/core/services/router';
|
||||
|
||||
const AdminController = () => import('#controllers/admin_controller');
|
||||
|
||||
/**
|
||||
* Routes for admin dashboard
|
||||
*/
|
||||
router
|
||||
.group(() => {
|
||||
router.get('/', [AdminController, 'index']).as('admin.dashboard');
|
||||
})
|
||||
.middleware([middleware.auth(), middleware.admin()])
|
||||
.prefix('/admin');
|
||||
@@ -1,15 +0,0 @@
|
||||
import router from '@adonisjs/core/services/router';
|
||||
const AppsController = () => import('#controllers/apps_controller');
|
||||
|
||||
/**
|
||||
* All routes for both logged and guest users
|
||||
*/
|
||||
router.group(() => {
|
||||
router.on('/').renderInertia('home').as('home');
|
||||
router.on('/terms').renderInertia('terms').as('terms');
|
||||
router.on('/privacy').renderInertia('privacy').as('privacy');
|
||||
|
||||
router
|
||||
.post('/user/theme', [AppsController, 'updateUserTheme'])
|
||||
.as('user.theme');
|
||||
});
|
||||
@@ -1,27 +0,0 @@
|
||||
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('/google', [UsersController, 'google']).as('auth');
|
||||
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);
|
||||
@@ -1,35 +0,0 @@
|
||||
import { middleware } from '#start/kernel';
|
||||
import router from '@adonisjs/core/services/router';
|
||||
const CollectionsController = () =>
|
||||
import('#controllers/collections_controller');
|
||||
|
||||
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');
|
||||
|
||||
router
|
||||
.get('/delete', [CollectionsController, 'showDeletePage'])
|
||||
.as('collection.delete-form');
|
||||
router
|
||||
.delete('/:id', [CollectionsController, 'delete'])
|
||||
.as('collection.delete');
|
||||
})
|
||||
.prefix('/collections');
|
||||
})
|
||||
.middleware([middleware.auth()]);
|
||||
@@ -1,9 +0,0 @@
|
||||
import router from '@adonisjs/core/services/router';
|
||||
const FaviconsController = () => import('#controllers/favicons_controller');
|
||||
|
||||
/**
|
||||
* Favicon routes
|
||||
*/
|
||||
router.group(() => {
|
||||
router.get('/favicon', [FaviconsController, 'index']).as('favicon');
|
||||
});
|
||||
@@ -1,28 +0,0 @@
|
||||
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');
|
||||
|
||||
router.get('/edit', [LinksController, 'showEditPage']).as('link.edit-form');
|
||||
router.put('/:id', [LinksController, 'update']).as('link.edit');
|
||||
|
||||
router
|
||||
.put('/:id/favorite', [LinksController, 'toggleFavorite'])
|
||||
.as('link.toggle-favorite');
|
||||
|
||||
router
|
||||
.get('/delete', [LinksController, 'showDeletePage'])
|
||||
.as('link.delete-form');
|
||||
router.delete('/:id', [LinksController, 'delete']).as('link.delete');
|
||||
})
|
||||
.middleware([middleware.auth()])
|
||||
.prefix('/links');
|
||||
@@ -1,13 +0,0 @@
|
||||
import { middleware } from '#start/kernel';
|
||||
import router from '@adonisjs/core/services/router';
|
||||
|
||||
const SearchesController = () => import('#controllers/searches_controller');
|
||||
|
||||
/**
|
||||
* Search routes
|
||||
*/
|
||||
router
|
||||
.group(() => {
|
||||
router.get('/search', [SearchesController, 'search']).as('search');
|
||||
})
|
||||
.middleware([middleware.auth()]);
|
||||
@@ -1,6 +0,0 @@
|
||||
import router from '@adonisjs/core/services/router';
|
||||
|
||||
const SharedCollectionsController = () =>
|
||||
import('#controllers/shared_collections_controller');
|
||||
|
||||
router.get('/shared/:id', [SharedCollectionsController, 'index']).as('shared');
|
||||
Reference in New Issue
Block a user