34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { Body, Controller, Get, Param, Post } from "@nestjs/common";
|
|
import { ApiOperation, ApiResponse, ApiTags } from "@nestjs/swagger";
|
|
|
|
import { CreateDiscountDto } from "./DTO/create-discount.dto";
|
|
import { DiscountsService } from "./providers/discounts.service";
|
|
import { AdminRoute } from "../../common/decorators/admin.decorator";
|
|
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
|
import { PermissionsDec } from "../../common/decorators/permission.decorator";
|
|
import { PermissionEnum } from "../users/enums/permission.enum";
|
|
|
|
@ApiTags("Discounts")
|
|
@Controller("discounts")
|
|
@AuthGuards()
|
|
export class DiscountsController {
|
|
constructor(private readonly discountsService: DiscountsService) {}
|
|
|
|
@ApiOperation({ summary: "Create a new discount" })
|
|
@AdminRoute()
|
|
@PermissionsDec(PermissionEnum.DISCOUNTS)
|
|
@Post()
|
|
@ApiResponse({ status: 201, description: "Discount created successfully" })
|
|
create(@Body() createDiscountDto: CreateDiscountDto) {
|
|
return this.discountsService.create(createDiscountDto);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Get discount by ID" })
|
|
@AdminRoute()
|
|
@PermissionsDec(PermissionEnum.DISCOUNTS)
|
|
@Get(":id")
|
|
findOne(@Param("id") id: string) {
|
|
return this.discountsService.findById(id);
|
|
}
|
|
}
|