Your IP : 216.73.217.95


Current Path : /home/deltalab/PMS/logistic-backend/src/models/carriers/
Upload File :
Current File : //home/deltalab/PMS/logistic-backend/src/models/carriers/carrier.controller.ts

import {
  Body,
  Controller,
  Delete,
  Get,
  HttpStatus,
  Param,
  Post,
  Put,
  Res,
} from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { Carrier } from './carrier.schema';
import { CarrierService } from './carrier.service';

@ApiTags('Carries')
@Controller({ path: 'carriers', version: '1' })
export class CarrierController {
  constructor(private readonly carrierService: CarrierService) {}

  @Post()
  async createProduct(
    @Res() response,
    @Body() carrier: Carrier,
  ): Promise<Carrier> {
    const newCarrier = await this.carrierService.create(carrier);
    return response.status(HttpStatus.CREATED).json(newCarrier);
  }

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

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

  @Put('/:id')
  async update(
    @Res() response,
    @Param('id') id,
    @Body() carrier: Carrier,
  ): Promise<Carrier> {
    const updatedCarrier = await this.carrierService.update(id, carrier);
    return response.status(HttpStatus.OK).json(updatedCarrier);
  }

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