| Current Path : /home/deltalab/PMS/logistic-backend/src/models/orders/ |
| Current File : //home/deltalab/PMS/logistic-backend/src/models/orders/order.controller.ts |
import {
Body,
Controller,
Delete,
Get,
HttpStatus,
Param,
Post,
Put,
Query,
Res,
} from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { Order } from './order.schema';
import { OrderService } from './order.service';
@ApiTags('Orders')
@Controller({ path: 'orders', version: '1' })
export class OrderController {
constructor(private readonly orderService: OrderService) {}
@Post()
async createProduct(@Res() response, @Body() order: Order): Promise<Order> {
const newOrder = await this.orderService.create(order);
return response.status(HttpStatus.CREATED).json(newOrder);
}
@Get()
async fetchAll(
@Res() response,
@Query('carrier') carrier: string,
@Query('date') date: Date,
): Promise<Order[]> {
const orders = await this.orderService.readAll({ carrier, date });
return response.status(HttpStatus.OK).json(orders);
}
@Get('/:id')
async findById(@Res() response, @Param('id') id: number): Promise<Order> {
const order = await this.orderService.readById(id);
return response.status(HttpStatus.OK).json(order);
}
@Put('/:id')
async update(
@Res() response,
@Param('id') id,
@Body() order: Order,
): Promise<Order> {
const updatedOrder = await this.orderService.update(id, order);
return response.status(HttpStatus.OK).json(updatedOrder);
}
@Put()
async updateMany(@Res() response, @Body() orders: Order[]): Promise<Order[]> {
const updatedOrders = await this.orderService.updateMany(orders);
return response.status(HttpStatus.OK).send(updatedOrders);
}
@Delete('/:id')
async delete(@Res() response, @Param('id') id: string): Promise<Order> {
const deletedOrder = await this.orderService.delete(id);
return response.status(HttpStatus.OK).json(deletedOrder);
}
}