Your IP : 216.73.216.220


Current Path : /home/deltalab/PMS/logistic-backend/src/models/pickup-points/
Upload File :
Current File : //home/deltalab/PMS/logistic-backend/src/models/pickup-points/pickup-point.controller.ts

import {
  Body,
  Controller,
  Delete,
  Get,
  HttpStatus,
  Param,
  Post,
  Put,
  Res,
} from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { PickupPoint } from './pickup-point.schema';
import { PickupPointService } from './pickup-point.service';

@ApiTags('Pickup points')
@Controller({ path: 'pickup-points', version: '1' })
export class PickupPointController {
  constructor(private readonly pickupPointService: PickupPointService) {}

  @Post()
  async createProduct(
    @Res() response,
    @Body() pickupPoint: PickupPoint,
  ): Promise<PickupPoint> {
    const newPickupPoint = await this.pickupPointService.create(pickupPoint);
    return response.status(HttpStatus.CREATED).json(newPickupPoint);
  }

  @Get()
  async fetchAll(@Res() response): Promise<PickupPoint[]> {
    const pickupPoints = await this.pickupPointService.readAll();
    return response.status(HttpStatus.OK).json(pickupPoints);
  }

  @Get('/:id')
  async findById(
    @Res() response,
    @Param('id') id: string,
  ): Promise<PickupPoint> {
    const pickupPoint = await this.pickupPointService.readById(id);
    return response.status(HttpStatus.OK).json(pickupPoint);
  }

  @Put('/:id')
  async update(
    @Res() response,
    @Param('id') id,
    @Body() pickupPoint: PickupPoint,
  ): Promise<PickupPoint> {
    const updatedPickupPoint = await this.pickupPointService.update(
      id,
      pickupPoint,
    );
    return response.status(HttpStatus.OK).json(updatedPickupPoint);
  }

  @Delete('/:id')
  async delete(@Res() response, @Param('id') id: string): Promise<PickupPoint> {
    const deletedPickupPoint = await this.pickupPointService.delete(id);
    return response.status(HttpStatus.OK).json(deletedPickupPoint);
  }
}