hermes-web-angular/src/app/app.routes.ts

101 lines
3.2 KiB
TypeScript

import { Routes } from '@angular/router';
import { PolicyComponent } from './policies/policy/policy.component';
import { AuthUserGuard } from './shared/auth/auth.user.guard';
import { LoginComponent } from './auth/login/login.component';
import { TtsLoginComponent } from './auth/tts-login/tts-login.component';
import { TwitchAuthCallbackComponent } from './twitch-auth-callback/twitch-auth-callback.component';
import { FiltersComponent } from './tts-filters/filters/filters.component';
import { AuthAdminGuard } from './shared/auth/auth.admin.guard';
import { AuthVisitorGuard } from './shared/auth/auth.visitor.guard';
import { ActionsComponent } from './actions/actions/actions.component';
import { RedemptionsComponent } from './redemptions/redemptions/redemptions.component';
import RedemptionResolver from './shared/resolvers/redemption-resolver';
import TwitchRedemptionResolver from './shared/resolvers/twitch-redemption-resolver';
import RedeemableActionResolver from './shared/resolvers/redeemable-action-resolver';
import TtsFilterResolver from './shared/resolvers/tts-filter-resolver';
import ApiKeyResolver from './shared/resolvers/api-key-resolver';
import GroupResolver from './shared/resolvers/group-resolver';
import PolicyResolver from './shared/resolvers/policy-resolver';
import { GroupsComponent } from './groups/groups/groups.component';
import { GroupPageComponent } from './groups/group-page/group-page.component';
import GroupChatterResolver from './shared/resolvers/group-chatter-resolver';
import PermissionResolver from './shared/resolvers/permission-resolver';
export const routes: Routes = [
{
path: 'policies',
component: PolicyComponent,
canActivate: [AuthUserGuard],
resolve: {
groups: GroupResolver,
policies: PolicyResolver,
}
},
{
path: 'groups',
component: GroupsComponent,
canActivate: [AuthAdminGuard],
resolve: {
groups: GroupResolver,
chatters: GroupChatterResolver,
policies: PolicyResolver,
permissions: PermissionResolver,
}
},
{
path: 'groups/:id',
component: GroupPageComponent,
canActivate: [AuthAdminGuard],
resolve: {
groups: GroupResolver,
chatters: GroupChatterResolver,
policies: PolicyResolver,
permissions: PermissionResolver,
}
},
{
path: 'filters',
component: FiltersComponent,
canActivate: [AuthUserGuard],
resolve: {
filters: TtsFilterResolver,
}
},
{
path: 'actions',
component: ActionsComponent,
canActivate: [AuthUserGuard],
resolve: {
redeemableActions: RedeemableActionResolver,
}
},
{
path: 'redemptions',
component: RedemptionsComponent,
canActivate: [AuthUserGuard],
resolve: {
redeemableActions: RedeemableActionResolver,
redemptions: RedemptionResolver,
twitchRedemptions: TwitchRedemptionResolver,
}
},
{
path: 'login',
component: LoginComponent,
canActivate: [AuthVisitorGuard],
},
{
path: 'tts-login',
component: TtsLoginComponent,
canActivate: [AuthUserGuard],
resolve: {
keys: ApiKeyResolver,
}
},
{
path: 'auth',
component: TwitchAuthCallbackComponent,
canActivate: [AuthVisitorGuard],
}
];