beteran-backend-app-browser/src/app/app.routing.ts

177 lines
4.5 KiB
TypeScript

import { Route } from '@angular/router';
import { AuthGuard } from 'app/core/auth/guards/auth.guard';
import { NoAuthGuard } from 'app/core/auth/guards/noAuth.guard';
import { LayoutComponent } from 'app/layout/layout.component';
import { InitialDataResolver } from 'app/app.resolvers';
// @formatter:off
/* eslint-disable max-len */
/* eslint-disable @typescript-eslint/explicit-function-return-type */
export const appRoutes: Route[] = [
// Redirect empty path to '/dashboards/user'
{ path: '', pathMatch: 'full', redirectTo: 'dashboards/user' },
// Redirect signed in user to the '/dashboards/user'
//
// After the user signs in, the sign in page will redirect the user to the 'signed-in-redirect'
// path. Below is another redirection for that path to redirect the user to the desired
// location. This is a small convenience to keep all main routes together here on this file.
{
path: 'signed-in-redirect',
pathMatch: 'full',
redirectTo: 'dashboards/user',
},
// Auth routes for guests
{
path: '',
canActivate: [NoAuthGuard],
canActivateChild: [NoAuthGuard],
component: LayoutComponent,
data: {
layout: 'empty',
},
children: [
{
path: 'confirmation-required',
loadChildren: () =>
import(
'app/modules/auth/confirmation-required/confirmation-required.module'
).then((m: any) => m.AuthConfirmationRequiredModule),
},
{
path: 'forgot-password',
loadChildren: () =>
import(
'app/modules/auth/forgot-password/forgot-password.module'
).then((m: any) => m.AuthForgotPasswordModule),
},
{
path: 'reset-password',
loadChildren: () =>
import('app/modules/auth/reset-password/reset-password.module').then(
(m: any) => m.AuthResetPasswordModule
),
},
{
path: 'sign-in',
loadChildren: () =>
import('app/modules/auth/sign-in/sign-in.module').then(
(m: any) => m.AuthSignInModule
),
},
{
path: 'sign-up',
loadChildren: () =>
import('app/modules/auth/sign-up/sign-up.module').then(
(m: any) => m.AuthSignUpModule
),
},
],
},
// Auth routes for authenticated users
{
path: '',
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
component: LayoutComponent,
data: {
layout: 'empty',
},
children: [
{
path: 'sign-out',
loadChildren: () =>
import('app/modules/auth/sign-out/sign-out.module').then(
(m: any) => m.AuthSignOutModule
),
},
{
path: 'unlock-session',
loadChildren: () =>
import('app/modules/auth/unlock-session/unlock-session.module').then(
(m: any) => m.AuthUnlockSessionModule
),
},
],
},
// Landing routes
{
path: '',
component: LayoutComponent,
data: {
layout: 'empty',
},
children: [
{
path: 'home',
loadChildren: () =>
import('app/modules/landing/home/home.module').then(
(m: any) => m.LandingHomeModule
),
},
],
},
// Admin routes
{
path: '',
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
component: LayoutComponent,
resolve: {
initialData: InitialDataResolver,
},
children: [
// Dashboards
{
path: 'dashboards',
children: [
{
path: 'user',
loadChildren: () =>
import('app/modules/admin/dashboards/user/user.module').then(
(m: any) => m.UserModule
),
},
],
},
// Apps
{
path: 'member',
children: [
{
path: 'user',
loadChildren: () =>
import('app/modules/admin/member/user/user.module').then(
(m: any) => m.UserModule
),
},
],
},
{
path: 'bank',
children: [
{
path: 'deposit',
loadChildren: () =>
import('app/modules/admin/bank/deposit/deposit.module').then(
(m: any) => m.DepositModule
),
},
{
path: 'withdraw',
loadChildren: () =>
import('app/modules/admin/bank/withdraw/withdraw.module').then(
(m: any) => m.WithdrawModule
),
},
],
},
],
},
];