aboutsummaryrefslogtreecommitdiffstats
path: root/start/routes/web.ts
blob: 308abec65bf9863d2792b008706d6f91392ccaea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import Route from '@ioc:Adonis/Core/Route';

// Health check
Route.get('health', 'HealthController.index');

// Legal documents
Route.get('terms', ({ response }) => response.redirect('/terms.html'));
Route.get('privacy', ({ response }) => response.redirect('/privacy.html'));

// Index
Route.get('/', ({ view }) => view.render('others/index'));

Route.group(() => {
  Route.group(() => {
    // Guest troutes
    Route.group(() => {
      Route.get('login', 'Dashboard/LoginController.show');
      Route.post('login', 'Dashboard/LoginController.login').as('login');

      // Reset password
      Route.get('forgot', 'Dashboard/ForgotPasswordController.show');
      Route.post('forgot', 'Dashboard/ForgotPasswordController.forgotPassword');

      Route.get('reset', 'Dashboard/ResetPasswordController.show');
      Route.post('reset', 'Dashboard/ResetPasswordController.resetPassword');
    }).middleware(['dashboard', 'guest']);

    // Authenticated routes
    Route.group(() => {
      Route.get('account', 'Dashboard/AccountController.show');
      Route.post('account', 'Dashboard/AccountController.store');

      Route.get('data', 'Dashboard/DataController.show');
      Route.get('export', 'Dashboard/ExportController.show');

      Route.get('transfer', 'Dashboard/TransferController.show');
      Route.post('transfer', 'Dashboard/TransferController.import');

      Route.get('delete', 'Dashboard/DeleteController.show');
      Route.post('delete', 'Dashboard/DeleteController.delete');

      Route.get('logout', 'Dashboard/LogOutController.logout');

      Route.get('*', ({ response }) => response.redirect('/user/account'));
    }).middleware(['dashboard', 'auth:web']);
  }).prefix('user');

  // Franz/Ferdi account import
  Route.get('import', ({ view }) => view.render('others/import'));
  Route.post('import', 'UserController.import');

  // 404 handler
  Route.get('/*', ({ response }) => response.redirect('/'));
}).middleware(['dashboard']);