alcremie-api / src /infra /http /http.module.ts
SID933's picture
Corrigir erros de formatação no código
96ed566
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
import { APP_INTERCEPTOR, APP_GUARD } from '@nestjs/core';
import { Module } from '@nestjs/common';
import { TagService } from '@/infra/http/services/tag.service';
import { ExternalService } from '@/infra/http/services/external.service';
import { RequestInterceptor } from '@/infra/http/interceptors/request.interceptor';
import { UploadController } from '@/infra/http/controllers/upload/upload.controller';
import { GetStatusController } from '@/infra/http/controllers/get-status/get-status.controller';
import { GetRandomImageController } from '@/infra/http/controllers/get-random-image/get-random-image.controller';
import { GetImageController } from '@/infra/http/controllers/get-image/get-image.controller';
import { FetchTagController } from '@/infra/http/controllers/fetch-tag/fetch-tag.controller';
import { FetchImagesController } from '@/infra/http/controllers/fetch-images/fetch-images.controller';
import { FetchImagesRandomController } from '@/infra/http/controllers/fetch-images-random/fetch-images-random.controller';
import { FavoriteImageController } from '@/infra/http/controllers/favorite-image/favorite-image.controller';
import { DeleteImageController } from '@/infra/http/controllers/delete-image/delete-image.controller';
import { AuthController } from '@/infra/http/controllers/auth/auth.controller';
import { EnvService } from '@/infra/env/env.service';
import { DatabaseModule } from '@/infra/database/database.module';
import { CloudinaryService } from '@/infra/cloudinary/services/cloudinary.service';
import { CloudinaryModule } from '@/infra/cloudinary/cloudinary.module';
import { AuthModule } from '@/infra/auth/auth.module';
import { RegisterRequestUseCase } from '@/domain/alcremie/application/use-cases/cases/register-request/register-request';
import { GetStatisticsUseCase } from '@/domain/alcremie/application/use-cases/cases/get-statistics/get-statistics';
import { GetRandomImageUseCase } from '@/domain/alcremie/application/use-cases/cases/get-random-image/get-random-image';
import { GetImageByIdUseCase } from '@/domain/alcremie/application/use-cases/cases/get-image-by-id/get-image-by-id';
import { FetchTagsUseCase } from '@/domain/alcremie/application/use-cases/cases/fetch-tags/fetch-tags';
import { FetchImagesUseCase } from '@/domain/alcremie/application/use-cases/cases/fetch-images/fetch-images';
import { FetchImagesRandomUseCase } from '@/domain/alcremie/application/use-cases/cases/fetch-images-random/fetch-images-random';
import { FetchImagesByTagUseCase } from '@/domain/alcremie/application/use-cases/cases/fetch-images-by-tag/fetch-images-by-tag';
import { FavoriteImageUseCase } from '@/domain/alcremie/application/use-cases/cases/favorite-image/favorite-image';
import { DeleteImageUseCase } from '@/domain/alcremie/application/use-cases/cases/delete-image/delete-image';
import { CreateTagUseCase } from '@/domain/alcremie/application/use-cases/cases/create-tag/create-tag';
import { CreateImageUseCase } from '@/domain/alcremie/application/use-cases/cases/create-image/create-image';
@Module({
imports: [
DatabaseModule,
AuthModule,
CloudinaryModule,
ThrottlerModule.forRoot([
{
ttl: 60000,
limit: 60,
},
{
ttl: 1000,
limit: 10,
},
]),
],
controllers: [
AuthController,
UploadController,
GetImageController,
FetchTagController,
GetStatusController,
DeleteImageController,
FetchImagesController,
FavoriteImageController,
GetRandomImageController,
FetchImagesRandomController,
],
providers: [
// Services
EnvService,
TagService,
ExternalService,
CloudinaryService,
// Use Cases
FetchTagsUseCase,
CreateTagUseCase,
CreateImageUseCase,
DeleteImageUseCase,
FetchImagesUseCase,
GetImageByIdUseCase,
FavoriteImageUseCase,
GetStatisticsUseCase,
GetRandomImageUseCase,
RegisterRequestUseCase,
FetchImagesByTagUseCase,
FetchImagesRandomUseCase,
//interceptors
RequestInterceptor,
{
provide: APP_INTERCEPTOR,
useClass: RequestInterceptor,
},
//guard
{
provide: APP_GUARD,
useClass: ThrottlerGuard,
},
],
})
export class HttpModule {}