Commit e62e7acf authored by devendra's avatar devendra
Browse files

Feat: Updated logEvent api to return success or failure response

parent 2e55778b
No related merge requests found
Showing with 22 additions and 11 deletions
+22 -11
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { EventsController } from './controllers/events.controller';
import { LoggerService } from './services/logger.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
controllers: [AppController, EventsController],
providers: [AppService, LoggerService],
})
export class AppModule {}
import { Controller, Post, Body, Inject } from '@nestjs/common';
import { LoggerService } from '../services/logger.service';
import { Response } from "../interfaces/common.interface";
@Controller('events')
export class EventsController {
constructor(@Inject(LoggerService) private readonly loggerService: LoggerService) {}
@Post()
logEvent(@Body() event: any): void {
this.loggerService.logEvent(event);
@Post('/logEvent')
logEvent(@Body() event: any): Response {
return this.loggerService.logEvent(event);
}
}
\ No newline at end of file
export interface Response {
success: boolean,
message: string,
}
\ No newline at end of file
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableCors();
app.useGlobalPipes(new ValidationPipe());
await app.listen(3000);
}
bootstrap();
import { Injectable } from "@nestjs/common";
import * as fs from 'fs';
import { Response } from "../interfaces/common.interface";
@Injectable()
export class LoggerService {
private readonly logFilePath: string = "../logs/events.log";
private readonly logFilePath: string = "./logs/events.log";
public logEvent(event: any): void {
const logEntry = JSON.stringify(event);
fs.appendFileSync(this.logFilePath, `${logEntry}\n`);
public logEvent(event: any): Response {
try {
const logEntry = JSON.stringify(event);
fs.appendFileSync(this.logFilePath, `${logEntry}\n`);
return { success: true, message: 'Event logged successfully' };
} catch(error) {
return { success: false, message: 'Failed to log event' };
}
}
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment