51 lines
2.0 KiB
TypeScript
51 lines
2.0 KiB
TypeScript
import { inject } from "inversify";
|
|
import { controller, httpPost, requestBody } from "inversify-express-utils";
|
|
|
|
import { HttpStatus } from "../../../common";
|
|
import { BaseController } from "../../../common/base/controller";
|
|
import { ApiAuth, ApiModel, ApiOperation, ApiResponse, ApiTags } from "../../../common/decorator/swggerDocs";
|
|
import { Guard } from "../../../core/middlewares/guard.middleware";
|
|
import { ValidationMiddleware } from "../../../core/middlewares/validator.middleware";
|
|
import { IOCTYPES } from "../../../IOC/ioc.types";
|
|
import { CreateSiteSettingDTO, UpdateSiteSettingDTO } from "../../site-setting/DTO/siteSetting.dto";
|
|
import { SiteSettingService } from "../../site-setting/siteSetting.service";
|
|
import { PermissionEnum } from "../models/Abstraction/IPermission";
|
|
|
|
@ApiTags("Admin Site Setting")
|
|
@controller("/admin/site-setting")
|
|
export class AdminSiteSettingController extends BaseController {
|
|
@inject(IOCTYPES.SiteSettingService) private siteSettingService: SiteSettingService;
|
|
|
|
@ApiOperation("create a setting for site")
|
|
@ApiResponse("successful", HttpStatus.Created)
|
|
@ApiModel(CreateSiteSettingDTO)
|
|
@ApiAuth()
|
|
@httpPost(
|
|
"",
|
|
Guard.authAdmin(),
|
|
Guard.checkAdminPermissions([PermissionEnum.ADMIN]),
|
|
ValidationMiddleware.validateInput(CreateSiteSettingDTO),
|
|
)
|
|
public async createSiteSetting(@requestBody() createDto: CreateSiteSettingDTO) {
|
|
const data = await this.siteSettingService.createSiteSetting(createDto);
|
|
return this.response(data, HttpStatus.Created);
|
|
}
|
|
|
|
//==>
|
|
|
|
@ApiOperation("update a setting for site")
|
|
@ApiResponse("successful", HttpStatus.Created)
|
|
@ApiModel(UpdateSiteSettingDTO)
|
|
@ApiAuth()
|
|
@httpPost(
|
|
"/update",
|
|
Guard.authAdmin(),
|
|
Guard.checkAdminPermissions([PermissionEnum.ADMIN]),
|
|
ValidationMiddleware.validateInput(UpdateSiteSettingDTO),
|
|
)
|
|
public async updateSiteSetting(@requestBody() updateDto: UpdateSiteSettingDTO) {
|
|
const data = await this.siteSettingService.updateSiteSetting(updateDto);
|
|
return this.response(data, HttpStatus.Created);
|
|
}
|
|
}
|