60 lines
2.5 KiB
TypeScript
60 lines
2.5 KiB
TypeScript
import { Body, Controller, Delete, Get, Param, Patch, Post, Query, UseInterceptors } from "@nestjs/common";
|
|
import { ApiOperation } from "@nestjs/swagger";
|
|
|
|
import { CreateIndustryDto } from "./DTO/create-industry.dto";
|
|
import { IndustryListQueryDto } from "./DTO/industry-list-query.dto";
|
|
import { UpdateIndustryDto } from "./DTO/update-industry.dto";
|
|
import { IndustriesService } from "./services/industries.service";
|
|
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
|
import { BusinessDec } from "../../common/decorators/business.decorator";
|
|
import { ParamDto } from "../../common/DTO/param.dto";
|
|
import { BusinessInterceptor } from "../../core/interceptors/business.interceptor";
|
|
import { Business } from "../businesses/entities/business.entity";
|
|
|
|
@Controller("industries")
|
|
@UseInterceptors(BusinessInterceptor)
|
|
export class IndustriesController {
|
|
constructor(private readonly industriesService: IndustriesService) {}
|
|
|
|
@Post()
|
|
@AuthGuards()
|
|
@ApiOperation({ summary: "create industry" })
|
|
create(@Body() createIndustryDto: CreateIndustryDto, @BusinessDec() business: Business) {
|
|
return this.industriesService.create(createIndustryDto, business);
|
|
}
|
|
|
|
@Get(":id")
|
|
@ApiOperation({ summary: "get industry by id" })
|
|
getIndustryById(@Param() paramDto: ParamDto, @BusinessDec("id") businessId: string) {
|
|
return this.industriesService.getIndustriesById(paramDto.id, businessId);
|
|
}
|
|
|
|
@Patch(":id")
|
|
@AuthGuards()
|
|
@ApiOperation({ summary: "update industry" })
|
|
updateIndustry(@Param() paramDto: ParamDto, @Body() updateIndustryDto: UpdateIndustryDto, @BusinessDec("id") businessId: string) {
|
|
return this.industriesService.updateIndustry(paramDto.id, updateIndustryDto, businessId);
|
|
}
|
|
|
|
@Delete(":id")
|
|
@AuthGuards()
|
|
@ApiOperation({ summary: "delete industry" })
|
|
deleteIndustry(@Param() paramDto: ParamDto, @BusinessDec("id") businessId: string) {
|
|
return this.industriesService.deleteIndustry(paramDto.id, businessId);
|
|
}
|
|
|
|
@Get("list")
|
|
@AuthGuards()
|
|
@ApiOperation({ summary: "get industries list for admin" })
|
|
getIndustriesForAdmin(@Query() query: IndustryListQueryDto, @BusinessDec("id") businessId: string) {
|
|
return this.industriesService.getIndustriesListForAdmin(query, businessId);
|
|
}
|
|
|
|
@Patch(":id/toggle-status")
|
|
@AuthGuards()
|
|
@ApiOperation({ summary: "toggle industry status" })
|
|
toggleStatus(@Param() paramDto: ParamDto, @BusinessDec("id") businessId: string) {
|
|
return this.industriesService.toggleStatus(paramDto.id, businessId);
|
|
}
|
|
}
|