diff options
Diffstat (limited to 'start')
-rw-r--r-- | start/events.ts | 6 | ||||
-rw-r--r-- | start/kernel.ts | 38 | ||||
-rw-r--r-- | start/routes/api.ts | 29 | ||||
-rw-r--r-- | start/routes/web.ts | 60 |
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 @@ | |||
1 | import { Config } from '@adonisjs/core/config'; | ||
2 | import emitter from '@adonisjs/core/services/emitter'; | 1 | import emitter from '@adonisjs/core/services/emitter'; |
3 | import mail from '@adonisjs/mail/services/main'; | 2 | import mail from '@adonisjs/mail/services/main'; |
3 | import 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 @@ | |||
1 | import 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 | |||
2 | import router from '@adonisjs/core/services/router'; | 11 | import router from '@adonisjs/core/services/router'; |
12 | import 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 | */ | ||
18 | server.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 | */ | ||
4 | server.use([ | 25 | server.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 | ||
9 | router.named({ | 33 | /** |
34 | * The router middleware stack runs middleware on all the HTTP | ||
35 | * requests with a registered route. | ||
36 | */ | ||
37 | router.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 | */ | ||
43 | export 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'; | |||
4 | const UserController = () => import('#controllers/Http/UserController'); | 4 | const UserController = () => import('#controllers/Http/UserController'); |
5 | const ServiceController = () => import('#controllers/Http/ServiceController'); | 5 | const ServiceController = () => import('#controllers/Http/ServiceController'); |
6 | const RecipeController = () => import('#controllers/Http/RecipeController'); | 6 | const RecipeController = () => import('#controllers/Http/RecipeController'); |
7 | const WorkspaceController = () => | ||
8 | import('#controllers/Http/WorkspaceController'); | ||
9 | const FeaturesController = () => | ||
10 | import('#controllers/Http/Api/Static/FeaturesController'); | ||
11 | const EmptyController = () => | ||
12 | import('#controllers/Http/Api/Static/EmptyController'); | ||
13 | const AnnouncementsController = () => | ||
14 | import('#controllers/Http/Api/Static/AnnouncementsController'); | ||
7 | 15 | ||
8 | router | 16 | router |
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 @@ | |||
1 | import router from '@adonisjs/core/services/router'; | 1 | import router from '@adonisjs/core/services/router'; |
2 | const HealthController = () => import('#controllers/Http/HealthController'); | ||
3 | const LoginController = () => | ||
4 | import('#controllers/Http/Dashboard/LoginController'); | ||
5 | const ForgotPasswordController = () => | ||
6 | import('#controllers/Http/Dashboard/ForgotPasswordController'); | ||
7 | const ResetPasswordController = () => | ||
8 | import('#controllers/Http/Dashboard/ResetPasswordController'); | ||
9 | const AccountController = () => | ||
10 | import('#controllers/Http/Dashboard/AccountController'); | ||
11 | const DataController = () => | ||
12 | import('#controllers/Http/Dashboard/DataController'); | ||
13 | const ExportController = () => | ||
14 | import('#controllers/Http/Dashboard/ExportController'); | ||
15 | const TransferController = () => | ||
16 | import('#controllers/Http/Dashboard/TransferController'); | ||
17 | const DeleteController = () => | ||
18 | import('#controllers/Http/Dashboard/DeleteController'); | ||
19 | const LogOutController = () => | ||
20 | import('#controllers/Http/Dashboard/LogOutController'); | ||
21 | const UserController = () => import('#controllers/Http/UserController'); | ||
2 | 22 | ||
3 | // Health check | 23 | // Health check |
4 | router.get('health', 'HealthController.index'); | 24 | router.get('health', [HealthController, 'index']); |
5 | 25 | ||
6 | // Legal documents | 26 | // Legal documents |
7 | router.get('terms', ({ response }) => response.redirect('/terms.html')); | 27 | router.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('/')); |