Merge branch 'dev' of https://github.com/SyncrowIOT/backend into SP-1315-BE-API-rate-limit

This commit is contained in:
hannathkadher
2025-04-24 12:21:49 +04:00
11 changed files with 294 additions and 59 deletions

View File

@ -33,10 +33,10 @@ import { ClientModule } from './client/client.module';
import { DeviceCommissionModule } from './commission-device/commission-device.module';
import { PowerClampModule } from './power-clamp/power-clamp.module';
import { WinstonModule } from 'nest-winston';
import { winstonLoggerOptions } from './common/filters/http-exception/logger/winston.logger';
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
import { HealthModule } from './health/health.module';
import { winstonLoggerOptions } from '../libs/common/src/logger/services/winston.logger';
@Module({
imports: [
ConfigModule.forRoot({

View File

@ -1,24 +0,0 @@
import { utilities as nestWinstonModuleUtilities } from 'nest-winston';
import * as winston from 'winston';
export const winstonLoggerOptions: winston.LoggerOptions = {
transports: [
new winston.transports.Console({
format: winston.format.combine(
winston.format.timestamp(),
nestWinstonModuleUtilities.format.nestLike('MyApp', {
prettyPrint: true,
}),
),
}),
new winston.transports.File({
filename: 'logs/error.log',
level: 'error',
format: winston.format.json(),
}),
new winston.transports.File({
filename: 'logs/combined.log',
format: winston.format.json(),
}),
],
};

View File

@ -679,12 +679,14 @@ export class DeviceService {
},
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { productId, id, uuid, name, ...rest } = camelCaseResponse.result;
const { productId, id, productName, uuid, name, ...rest } =
camelCaseResponse.result;
return {
...rest,
productUuid: product.uuid,
name: deviceDetails.name,
productName: product.name,
} as GetDeviceDetailsInterface;
} catch (error) {
console.log('error', error);

View File

@ -7,6 +7,9 @@ import { ValidationPipe } from '@nestjs/common';
import { json, urlencoded } from 'body-parser';
import { SeederService } from '@app/common/seed/services/seeder.service';
import { HttpExceptionFilter } from './common/filters/http-exception/http-exception.filter';
import { Logger } from '@nestjs/common';
import { WINSTON_MODULE_NEST_PROVIDER } from 'nest-winston';
import { RequestContextMiddleware } from '@app/common/middleware/request-context.middleware';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
@ -18,6 +21,8 @@ async function bootstrap() {
app.use(urlencoded({ limit: '1mb', extended: true }));
app.useGlobalFilters(new HttpExceptionFilter());
app.use(new RequestContextMiddleware().use);
app.use(
rateLimit({
windowMs: 5 * 60 * 1000,
@ -43,14 +48,16 @@ async function bootstrap() {
);
const seederService = app.get(SeederService);
const logger = app.get<Logger>(WINSTON_MODULE_NEST_PROVIDER);
try {
await seederService.seed();
console.log('Seeding complete!');
logger.log('Seeding complete!');
} catch (error) {
console.error('Seeding failed!', error);
logger.error('Seeding failed!', error.stack || error);
}
console.log('Starting auth at port ...', process.env.PORT || 4000);
logger.log('Starting auth at port ...', process.env.PORT || 4000);
await app.listen(process.env.PORT || 4000);
}
bootstrap();