57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import { Controller, Get, Post, Body, Patch, Param, Delete, Query, UseGuards } from '@nestjs/common';
|
|
import { CatalogueService } from './catalogue.service';
|
|
import { CreateCatalogueDto } from './dto/create-catalogue.dto';
|
|
import { UpdateCatalogueDto } from './dto/update-catalogue.dto';
|
|
import { FindCataloguesDto } from './dto/find-catalogues.dto';
|
|
import { AdminAuthGuard } from '../auth/guards/adminAuth.guard';
|
|
import { BusinessId } from 'src/common/decorators';
|
|
|
|
@Controller()
|
|
export class CatalogueController {
|
|
constructor(private readonly catalogueService: CatalogueService) { }
|
|
|
|
// ============= Public Routes ==============
|
|
|
|
@Get('public/catalogue')
|
|
findAllAsPublic(@Query() queryDto: FindCataloguesDto) {
|
|
return this.catalogueService.findAll(queryDto);
|
|
}
|
|
|
|
@Get('admin/catalogue/:id')
|
|
findOneAsPublic(@Param('id') id: string) {
|
|
return this.catalogueService.findOne(id);
|
|
}
|
|
|
|
// ============= Admin Routes ==============
|
|
|
|
@Post('admin/catalogue')
|
|
@UseGuards(AdminAuthGuard)
|
|
create(@Body() dto: CreateCatalogueDto, @BusinessId() busId: string) {
|
|
return this.catalogueService.create(dto, busId);
|
|
}
|
|
|
|
@Get('admin/catalogue')
|
|
@UseGuards(AdminAuthGuard)
|
|
findAll(@Query() queryDto: FindCataloguesDto) {
|
|
return this.catalogueService.findAll(queryDto);
|
|
}
|
|
|
|
@Get('admin/catalogue/:id')
|
|
@UseGuards(AdminAuthGuard)
|
|
findOne(@Param('id') id: string) {
|
|
return this.catalogueService.findOne(id);
|
|
}
|
|
|
|
@Patch('admin/catalogue/:id')
|
|
@UseGuards(AdminAuthGuard)
|
|
update(@Param('id') id: string, @Body() dto: UpdateCatalogueDto) {
|
|
return this.catalogueService.update(id, dto);
|
|
}
|
|
|
|
@Delete('admin/catalogue/:id')
|
|
@UseGuards(AdminAuthGuard)
|
|
remove(@Param('id') id: string) {
|
|
return this.catalogueService.remove(id);
|
|
}
|
|
}
|