| Current Path : /home/deltalab/PMS/logistic-backend/src/models/kpi/ |
| Current File : //home/deltalab/PMS/logistic-backend/src/models/kpi/kpi.controller.ts |
import {
Body,
Controller,
Delete,
Get,
HttpStatus,
Param,
Post,
Put,
Res,
} from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { Kpi } from './kpi.schema';
import { KpiService } from './kpi.service';
@ApiTags('KPI')
@Controller({ path: 'kpi', version: '1' })
export class KpiController {
constructor(private readonly kpiService: KpiService) {}
@Post()
async createProduct(@Res() response, @Body() kpi: Kpi): Promise<Kpi> {
const newKpi = await this.kpiService.create(kpi);
return response.status(HttpStatus.CREATED).json(newKpi);
}
@Get()
async fetchAll(@Res() response): Promise<Kpi[]> {
const kpis = await this.kpiService.readAll();
return response.status(HttpStatus.OK).json(kpis);
}
@Get('/:id')
async findById(@Res() response, @Param('id') id: string): Promise<Kpi> {
const kpi = await this.kpiService.readById(id);
return response.status(HttpStatus.OK).json(kpi);
}
@Put('/:id')
async update(
@Res() response,
@Param('id') id,
@Body() kpi: Kpi,
): Promise<Kpi> {
const updatedKpi = await this.kpiService.update(id, kpi);
return response.status(HttpStatus.OK).json(updatedKpi);
}
@Delete('/:id')
async delete(@Res() response, @Param('id') id: string): Promise<Kpi> {
const deletedKpi = await this.kpiService.delete(id);
return response.status(HttpStatus.OK).json(deletedKpi);
}
}