aboutsummaryrefslogtreecommitdiffstats
path: root/start/routes/web.ts
blob: 2907e624582bc05462bf2f9ca17e0315c46be866 (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import router from '@adonisjs/core/services/router';

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

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

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

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

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

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

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

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

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

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

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

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

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

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