refactor: split backend by context instead of type 'controllers/models/...'

This commit is contained in:
Sonny
2024-11-10 22:26:00 +01:00
parent 466c8dec3a
commit 01efb11f70
78 changed files with 230 additions and 228 deletions

View File

@@ -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'),
});

View File

@@ -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';

View File

@@ -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');

View File

@@ -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');
});

View File

@@ -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);

View File

@@ -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()]);

View File

@@ -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');
});

View File

@@ -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');

View File

@@ -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()]);

View File

@@ -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');