59 lines
2.1 KiB
TypeScript
Executable File
59 lines
2.1 KiB
TypeScript
Executable File
import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from "@nestjs/common";
|
|
import { ApiOperation } from "@nestjs/swagger";
|
|
|
|
import { CreateSliderDto } from "./DTO/create-slider.dto";
|
|
import { UpdateSliderDto } from "./DTO/update-slider.dto";
|
|
import { SlidersService } from "./providers/sliders.service";
|
|
import { AdminRoute } from "../../common/decorators/admin.decorator";
|
|
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
|
import { PermissionsDec } from "../../common/decorators/permission.decorator";
|
|
import { PaginationDto } from "../../common/DTO/pagination.dto";
|
|
import { ParamDto } from "../../common/DTO/param.dto";
|
|
import { PermissionEnum } from "../users/enums/permission.enum";
|
|
|
|
@Controller("sliders")
|
|
@AuthGuards()
|
|
export class SlidersController {
|
|
constructor(private readonly slidersService: SlidersService) {}
|
|
|
|
@ApiOperation({ summary: "create slider (admin route)" })
|
|
@AdminRoute()
|
|
@PermissionsDec(PermissionEnum.SLIDERS_CREATE)
|
|
@Post()
|
|
create(@Body() createSliderDto: CreateSliderDto) {
|
|
return this.slidersService.create(createSliderDto);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Get all sliders (admin route)" })
|
|
@AdminRoute()
|
|
@PermissionsDec(PermissionEnum.SLIDERS_READ)
|
|
@Get()
|
|
getSlidersList(@Query() queryDto: PaginationDto) {
|
|
return this.slidersService.getSlidersList(queryDto);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Get a slider by id (admin route)" })
|
|
@AdminRoute()
|
|
@PermissionsDec(PermissionEnum.SLIDERS_READ)
|
|
@Get(":id")
|
|
getSliderById(@Param() paramDto: ParamDto) {
|
|
return this.slidersService.getSliderById(paramDto.id);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Update a slider (admin route)" })
|
|
@AdminRoute()
|
|
@PermissionsDec(PermissionEnum.SLIDERS_UPDATE)
|
|
@Patch(":id")
|
|
update(@Param() paramDto: ParamDto, @Body() updateSliderDto: UpdateSliderDto) {
|
|
return this.slidersService.update(paramDto.id, updateSliderDto);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Delete a slider (admin route)" })
|
|
@AdminRoute()
|
|
@PermissionsDec(PermissionEnum.SLIDERS_DELETE)
|
|
@Delete(":id")
|
|
remove(@Param() paramDto: ParamDto) {
|
|
return this.slidersService.remove(paramDto.id);
|
|
}
|
|
}
|