Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/apps/job-launcher/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"@nestjs/serve-static": "^4.0.1",
"@nestjs/swagger": "^7.4.2",
"@nestjs/terminus": "^11.0.0",
"@nestjs/throttler": "^6.4.0",
"@nestjs/typeorm": "^10.0.1",
"@sendgrid/mail": "^8.1.3",
"@types/passport-jwt": "^4.0.1",
Expand Down
45 changes: 29 additions & 16 deletions packages/apps/job-launcher/server/src/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@
import { Module } from '@nestjs/common';
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR, APP_PIPE } from '@nestjs/core';
import { ConfigModule } from '@nestjs/config';
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR, APP_PIPE } from '@nestjs/core';
import { ScheduleModule } from '@nestjs/schedule';
import { ServeStaticModule } from '@nestjs/serve-static';
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
import { join } from 'path';
import { AppController } from './app.controller';
import { DatabaseModule } from './database/database.module';
import { EnvConfigModule } from './common/config/config.module';
import { envValidator } from './common/config/env-schema';
import { ExceptionFilter } from './common/exceptions/exception.filter';
import { JwtAuthGuard } from './common/guards';
import { SnakeCaseInterceptor } from './common/interceptors/snake-case';
import { TransformEnumInterceptor } from './common/interceptors/transform-enum.interceptor';
import { HttpValidationPipe } from './common/pipes';
import { HealthModule } from './modules/health/health.module';
import { DatabaseModule } from './database/database.module';
import { AuthModule } from './modules/auth/auth.module';
import { UserModule } from './modules/user/user.module';
import { CronJobModule } from './modules/cron-job/cron-job.module';
import { HealthModule } from './modules/health/health.module';
import { JobModule } from './modules/job/job.module';
import { PaymentModule } from './modules/payment/payment.module';
import { Web3Module } from './modules/web3/web3.module';
import { envValidator } from './common/config/env-schema';
import { ServeStaticModule } from '@nestjs/serve-static';
import { join } from 'path';
import { QualificationModule } from './modules/qualification/qualification.module';
import { StatisticModule } from './modules/statistic/statistic.module';
import { StorageModule } from './modules/storage/storage.module';
import { CronJobModule } from './modules/cron-job/cron-job.module';
import { SnakeCaseInterceptor } from './common/interceptors/snake-case';
import { UserModule } from './modules/user/user.module';
import { Web3Module } from './modules/web3/web3.module';
import { WebhookModule } from './modules/webhook/webhook.module';
import { EnvConfigModule } from './common/config/config.module';
import { ExceptionFilter } from './common/exceptions/exception.filter';
import { ScheduleModule } from '@nestjs/schedule';
import { StatisticModule } from './modules/statistic/statistic.module';
import { QualificationModule } from './modules/qualification/qualification.module';
import { TransformEnumInterceptor } from './common/interceptors/transform-enum.interceptor';

@Module({
providers: [
Expand All @@ -47,8 +48,20 @@ import { TransformEnumInterceptor } from './common/interceptors/transform-enum.i
provide: APP_FILTER,
useClass: ExceptionFilter,
},
{
provide: APP_GUARD,
useClass: ThrottlerGuard,
},
],
imports: [
ThrottlerModule.forRoot({
throttlers: [
{
ttl: 60000,
limit: 1000,
},
],
}),
ScheduleModule.forRoot(),
ConfigModule.forRoot({
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ import {
UseGuards,
UseInterceptors,
} from '@nestjs/common';

import {
ApiBearerAuth,
ApiBody,
ApiOperation,
ApiResponse,
ApiTags,
} from '@nestjs/swagger';
import { Throttle } from '@nestjs/throttler';
import { ErrorAuth } from '../../common/constants/errors';
import { Public } from '../../common/decorators';
import { ValidationError } from '../../common/errors';
Expand Down Expand Up @@ -143,6 +143,7 @@ export class AuthJwtController {

@Public()
@HttpCode(204)
@Throttle({ default: { limit: 3, ttl: 60000 } })
@Post('/forgot-password')
@ApiOperation({
summary: 'Forgot Password',
Expand All @@ -161,7 +162,11 @@ export class AuthJwtController {
status: 404,
description: 'Not Found. Could not find the requested content.',
})
public async forgotPassword(@Body() data: ForgotPasswordDto): Promise<void> {
public async forgotPassword(
@Body() data: ForgotPasswordDto,
@Ip() ip: string,
): Promise<void> {
console.log('IP:', ip);
await this.authService.forgotPassword(data);
}

Expand Down
12 changes: 12 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4401,6 +4401,7 @@ __metadata:
"@nestjs/swagger": "npm:^7.4.2"
"@nestjs/terminus": "npm:^11.0.0"
"@nestjs/testing": "npm:^10.4.6"
"@nestjs/throttler": "npm:^6.4.0"
"@nestjs/typeorm": "npm:^10.0.1"
"@sendgrid/mail": "npm:^8.1.3"
"@types/bcrypt": "npm:^5.0.2"
Expand Down Expand Up @@ -6431,6 +6432,17 @@ __metadata:
languageName: node
linkType: hard

"@nestjs/throttler@npm:^6.4.0":
version: 6.4.0
resolution: "@nestjs/throttler@npm:6.4.0"
peerDependencies:
"@nestjs/common": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
"@nestjs/core": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
reflect-metadata: ^0.1.13 || ^0.2.0
checksum: 10c0/796134644e341aad4a403b7431524db97adc31ae8771fc1160a4694a24c295b7a3dd15abcb72b9ea3a0702247b929f501fc5dc74a3f30d915f2667a39ba5c5d7
languageName: node
linkType: hard

"@nestjs/typeorm@npm:^10.0.1":
version: 10.0.2
resolution: "@nestjs/typeorm@npm:10.0.2"
Expand Down
Loading