Your IP : 216.73.216.220


Current Path : /proc/thread-self/root/home/deltalab/PMS/logistic-backend/src/models/kpi/
Upload File :
Current File : //proc/thread-self/root/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);
  }
}