Spaces:
Runtime error
Runtime error
File size: 4,311 Bytes
96ed566 |
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
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 {}
|