fileserver/src/app.module.ts

58 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-08-17 21:59:51 +02:00
import { Controller, Get, Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { INode, JWTToken, User, UserRole } from './entities';
import FileSystemModule from './modules/filesystem';
import { JWTAuthGuard, Role, RoleGuard } from './authguards';
import AuthModule from './modules/auth';
import { ServeStaticModule } from '@nestjs/serve-static';
import { join } from 'path';
2022-08-22 16:52:02 +02:00
declare const PROD: boolean | undefined;
2022-08-17 21:59:51 +02:00
@Controller('test')
class TestController {
@Role(UserRole.USER)
@Get('hello')
getHello(): string {
return 'UwU';
}
@Role(UserRole.ADMIN)
@Get('hello2')
getHelloAdmin(): string {
return 'UwU Admin';
}
}
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'sqlite',
database: 'sqlite.db',
synchronize: true,
entities: [User, INode, JWTToken]
}),
ServeStaticModule.forRoot({
2022-08-22 16:52:02 +02:00
rootPath:
typeof PROD !== 'undefined' && PROD
? join(__dirname, 'frontend')
: join(__dirname, '..', '..', 'frontend', 'dist'),
2022-08-17 21:59:51 +02:00
exclude: ['/api*']
}),
FileSystemModule,
AuthModule
],
controllers: [TestController],
providers: [
{
provide: 'APP_GUARD',
useClass: JWTAuthGuard
},
{
provide: 'APP_GUARD',
useClass: RoleGuard
}
]
})
export class AppModule {}