aboutsummaryrefslogtreecommitdiffstats
path: root/start
diff options
context:
space:
mode:
Diffstat (limited to 'start')
-rw-r--r--start/events.ts6
-rw-r--r--start/kernel.ts38
-rw-r--r--start/routes/api.ts29
-rw-r--r--start/routes/web.ts60
4 files changed, 94 insertions, 39 deletions
diff --git a/start/events.ts b/start/events.ts
index 9fe05e3..b3667db 100644
--- a/start/events.ts
+++ b/start/events.ts
@@ -1,6 +1,6 @@
1import { Config } from '@adonisjs/core/config';
2import emitter from '@adonisjs/core/services/emitter'; 1import emitter from '@adonisjs/core/services/emitter';
3import mail from '@adonisjs/mail/services/main'; 2import mail from '@adonisjs/mail/services/main';
3import config from '@adonisjs/core/services/config';
4 4
5/* 5/*
6|-------------------------------------------------------------------------- 6|--------------------------------------------------------------------------
@@ -19,9 +19,9 @@ emitter.on('forgot::password', async ({ user, token }) => {
19 message 19 message
20 .subject('[Ferdium] Forgot Password') 20 .subject('[Ferdium] Forgot Password')
21 .to(user.email) 21 .to(user.email)
22 .from(Config.get('dasshboard.mailFrom')) 22 .from(config.get('dasshboard.mailFrom'))
23 .textView('emails.forgot-password', { 23 .textView('emails.forgot-password', {
24 appUrl: Config.get('app.url'), 24 appUrl: config.get('app.url'),
25 username: user.username, 25 username: user.username,
26 token, 26 token,
27 }); 27 });
diff --git a/start/kernel.ts b/start/kernel.ts
index 86ec933..4bd783c 100644
--- a/start/kernel.ts
+++ b/start/kernel.ts
@@ -1,12 +1,46 @@
1import server from '@adonisjs/core/services/server'; 1/*
2|--------------------------------------------------------------------------
3| HTTP kernel file
4|--------------------------------------------------------------------------
5|
6| The HTTP kernel file is used to register the middleware with the server
7| or the router.
8|
9*/
10
2import router from '@adonisjs/core/services/router'; 11import router from '@adonisjs/core/services/router';
12import server from '@adonisjs/core/services/server';
3 13
14/**
15 * The error handler is used to convert an exception
16 * to a HTTP response.
17 */
18server.errorHandler(() => import('#exceptions/handler'));
19
20/**
21 * The server middleware stack runs middleware on all the HTTP
22 * requests, even if there is no route registered for
23 * the request URL.
24 */
4server.use([ 25server.use([
5 () => import('@adonisjs/core/bodyparser_middleware'), 26 () => import('@adonisjs/core/bodyparser_middleware'),
6 () => import('@adonisjs/shield/shield_middleware'), 27 () => import('@adonisjs/shield/shield_middleware'),
28 () => import('@adonisjs/cors/cors_middleware'),
29 () => import('#middleware/container_bindings_middleware'),
30 () => import('#middleware/force_json_response_middleware'),
7]); 31]);
8 32
9router.named({ 33/**
34 * The router middleware stack runs middleware on all the HTTP
35 * requests with a registered route.
36 */
37router.use([() => import('@adonisjs/core/bodyparser_middleware')]);
38
39/**
40 * Named middleware collection must be explicitly assigned to
41 * the routes or the routes group.
42 */
43export const middleware = router.named({
10 auth: () => import('#app/Middleware/Auth'), 44 auth: () => import('#app/Middleware/Auth'),
11 dashboard: () => import('#app/Middleware/Dashboard'), 45 dashboard: () => import('#app/Middleware/Dashboard'),
12 guest: () => import('#app/Middleware/AllowGuestOnly'), 46 guest: () => import('#app/Middleware/AllowGuestOnly'),
diff --git a/start/routes/api.ts b/start/routes/api.ts
index 77c3046..54250a2 100644
--- a/start/routes/api.ts
+++ b/start/routes/api.ts
@@ -4,6 +4,14 @@ import router from '@adonisjs/core/services/router';
4const UserController = () => import('#controllers/Http/UserController'); 4const UserController = () => import('#controllers/Http/UserController');
5const ServiceController = () => import('#controllers/Http/ServiceController'); 5const ServiceController = () => import('#controllers/Http/ServiceController');
6const RecipeController = () => import('#controllers/Http/RecipeController'); 6const RecipeController = () => import('#controllers/Http/RecipeController');
7const WorkspaceController = () =>
8 import('#controllers/Http/WorkspaceController');
9const FeaturesController = () =>
10 import('#controllers/Http/Api/Static/FeaturesController');
11const EmptyController = () =>
12 import('#controllers/Http/Api/Static/EmptyController');
13const AnnouncementsController = () =>
14 import('#controllers/Http/Api/Static/AnnouncementsController');
7 15
8router 16router
9 .group(() => { 17 .group(() => {
@@ -46,23 +54,22 @@ router
46 54
47 // // Workspaces 55 // // Workspaces
48 router 56 router
49 .put('workspace/:id', 'WorkspaceController.edit') 57 .put('workspace/:id', [WorkspaceController, 'edit'])
50 .middleware('auth:jwt'); 58 .middleware('auth:jwt');
51 router 59 router
52 .delete('workspace/:id', 'WorkspaceController.delete') 60 .delete('workspace/:id', [WorkspaceController, 'delete'])
53 .middleware('auth:jwt'); 61 .middleware('auth:jwt');
54 router 62 router
55 .post('workspace', 'WorkspaceController.create') 63 .post('workspace', [WorkspaceController, 'create'])
64 .middleware('auth:jwt');
65 router
66 .get('workspace', [WorkspaceController, 'list'])
56 .middleware('auth:jwt'); 67 .middleware('auth:jwt');
57 router.get('workspace', 'WorkspaceController.list').middleware('auth:jwt');
58 68
59 // Static responses 69 // Static responses
60 router.get('features/:mode?', 'Api/Static/FeaturesController.show'); 70 router.get('features/:mode?', [FeaturesController, 'show']);
61 router.get('services', 'Api/Static/EmptyController.show'); 71 router.get('services', [EmptyController, 'show']);
62 router.get('news', 'Api/Static/EmptyController.show'); 72 router.get('news', [EmptyController, 'show']);
63 router.get( 73 router.get('announcements/:version', [AnnouncementsController, 'show']);
64 'announcements/:version',
65 'Api/Static/AnnouncementsController.show',
66 );
67 }) 74 })
68 .prefix('/v1'); 75 .prefix('/v1');
diff --git a/start/routes/web.ts b/start/routes/web.ts
index 2907e62..a944c05 100644
--- a/start/routes/web.ts
+++ b/start/routes/web.ts
@@ -1,7 +1,27 @@
1import router from '@adonisjs/core/services/router'; 1import router from '@adonisjs/core/services/router';
2const HealthController = () => import('#controllers/Http/HealthController');
3const LoginController = () =>
4 import('#controllers/Http/Dashboard/LoginController');
5const ForgotPasswordController = () =>
6 import('#controllers/Http/Dashboard/ForgotPasswordController');
7const ResetPasswordController = () =>
8 import('#controllers/Http/Dashboard/ResetPasswordController');
9const AccountController = () =>
10 import('#controllers/Http/Dashboard/AccountController');
11const DataController = () =>
12 import('#controllers/Http/Dashboard/DataController');
13const ExportController = () =>
14 import('#controllers/Http/Dashboard/ExportController');
15const TransferController = () =>
16 import('#controllers/Http/Dashboard/TransferController');
17const DeleteController = () =>
18 import('#controllers/Http/Dashboard/DeleteController');
19const LogOutController = () =>
20 import('#controllers/Http/Dashboard/LogOutController');
21const UserController = () => import('#controllers/Http/UserController');
2 22
3// Health check 23// Health check
4router.get('health', 'HealthController.index'); 24router.get('health', [HealthController, 'index']);
5 25
6// Legal documents 26// Legal documents
7router.get('terms', ({ response }) => response.redirect('/terms.html')); 27router.get('terms', ({ response }) => response.redirect('/terms.html'));
@@ -17,40 +37,34 @@ router
17 // Guest troutes 37 // Guest troutes
18 router 38 router
19 .group(() => { 39 .group(() => {
20 router.get('login', 'Dashboard/LoginController.show'); 40 router.get('login', [LoginController, 'show']);
21 router.post('login', 'Dashboard/LoginController.login').as('login'); 41 router.post('login', [LoginController, 'login']).as('login');
22 42
23 // Reset password 43 // Reset password
24 router.get('forgot', 'Dashboard/ForgotPasswordController.show'); 44 router.get('forgot', [ForgotPasswordController, 'show']);
25 router.post( 45 router.post('forgot', [ForgotPasswordController, 'forgotPassword']);
26 'forgot',
27 'Dashboard/ForgotPasswordController.forgotPassword',
28 );
29 46
30 router.get('reset', 'Dashboard/ResetPasswordController.show'); 47 router.get('reset', [ResetPasswordController, 'show']);
31 router.post( 48 router.post('reset', [ResetPasswordController, 'resetPassword']);
32 'reset',
33 'Dashboard/ResetPasswordController.resetPassword',
34 );
35 }) 49 })
36 .middleware(['dashboard', 'guest']); 50 .middleware(['dashboard', 'guest']);
37 51
38 // Authenticated routes 52 // Authenticated routes
39 router 53 router
40 .group(() => { 54 .group(() => {
41 router.get('account', 'Dashboard/AccountController.show'); 55 router.get('account', [AccountController, 'show']);
42 router.post('account', 'Dashboard/AccountController.store'); 56 router.post('account', [AccountController, 'store']);
43 57
44 router.get('data', 'Dashboard/DataController.show'); 58 router.get('data', [DataController, 'show']);
45 router.get('export', 'Dashboard/ExportController.show'); 59 router.get('export', [ExportController, 'show']);
46 60
47 router.get('transfer', 'Dashboard/TransferController.show'); 61 router.get('transfer', [TransferController, 'show']);
48 router.post('transfer', 'Dashboard/TransferController.import'); 62 router.post('transfer', [TransferController, 'import']);
49 63
50 router.get('delete', 'Dashboard/DeleteController.show'); 64 router.get('delete', [DeleteController, 'show']);
51 router.post('delete', 'Dashboard/DeleteController.delete'); 65 router.post('delete', [DeleteController, 'delete']);
52 66
53 router.get('logout', 'Dashboard/LogOutController.logout'); 67 router.get('logout', [LogOutController, 'logout']);
54 68
55 router.get('*', ({ response }) => 69 router.get('*', ({ response }) =>
56 response.redirect('/user/account'), 70 response.redirect('/user/account'),
@@ -62,7 +76,7 @@ router
62 76
63 // Franz/Ferdi account import 77 // Franz/Ferdi account import
64 router.get('import', ({ view }) => view.render('others/import')); 78 router.get('import', ({ view }) => view.render('others/import'));
65 router.post('import', 'UserController.import'); 79 router.post('import', [UserController, 'import']);
66 80
67 // 404 handler 81 // 404 handler
68 router.get('/*', ({ response }) => response.redirect('/')); 82 router.get('/*', ({ response }) => response.redirect('/'));