| Current Path : /home/deltalab/PMS/logistic-backend/src/models/routes/ |
| Current File : //home/deltalab/PMS/logistic-backend/src/models/routes/route.controller.ts |
import {
Body,
Controller,
Delete,
Get,
HttpStatus,
Param,
Post,
Put,
Query,
Res,
} from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { Route } from './route.schema';
import { RouteService } from './route.service';
@ApiTags('Routes')
@Controller({ path: 'routes', version: '1' })
export class RouteController {
constructor(private readonly routeService: RouteService) {}
@Post()
async createProduct(@Res() response, @Body() route: Route): Promise<Route> {
const newRoute = await this.routeService.create(route);
return response.status(HttpStatus.CREATED).json(newRoute);
}
@Get()
async fetchAll(
@Res() response,
@Query('carrier') carrier: string,
@Query('date') date: Date,
): Promise<Route[]> {
const routes = await this.routeService.readAll({ carrier, date });
return response.status(HttpStatus.OK).json(routes);
}
@Get('/:id')
async findById(@Res() response, @Param('id') id: string): Promise<Route> {
const route = await this.routeService.readById(id);
return response.status(HttpStatus.OK).json(route);
}
@Put('/:id')
async update(
@Res() response,
@Param('id') id,
@Body() route: Route,
): Promise<Route> {
const updatedRoute = await this.routeService.update(id, route);
return response.status(HttpStatus.OK).json(updatedRoute);
}
@Delete('/:id')
async delete(@Res() response, @Param('id') id: string): Promise<Route> {
const deletedRoute = await this.routeService.delete(id);
return response.status(HttpStatus.OK).json(deletedRoute);
}
}